moved more of the old stuff from DisplayDriver into DisplayDriverImpl
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12141 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
13066bfea1
commit
3f537e5fa7
@ -38,15 +38,9 @@
|
|||||||
\brief Sets up internal variables needed by all DisplayDriver subclasses
|
\brief Sets up internal variables needed by all DisplayDriver subclasses
|
||||||
*/
|
*/
|
||||||
DisplayDriver::DisplayDriver()
|
DisplayDriver::DisplayDriver()
|
||||||
: fDPMSState(B_DPMS_ON),
|
|
||||||
fDPMSCaps(B_DPMS_ON)
|
|
||||||
{
|
{
|
||||||
fDisplayMode.virtual_width = 640;
|
|
||||||
fDisplayMode.virtual_height = 480;
|
|
||||||
fDisplayMode.space = B_RGBA32;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Does nothing
|
\brief Does nothing
|
||||||
*/
|
*/
|
||||||
@ -82,72 +76,4 @@ DisplayDriver::Shutdown()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Protected Internal Functions
|
|
||||||
/*
|
|
||||||
\brief Sets the screen mode to specified resolution and color depth.
|
|
||||||
\param mode Data structure as defined in Screen.h
|
|
||||||
|
|
||||||
Subclasses must include calls to _SetDepth, _SetHeight, _SetWidth, and _SetMode
|
|
||||||
to update the state variables kept internally by the DisplayDriver class.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
DisplayDriver::SetMode(const display_mode &mode)
|
|
||||||
{
|
|
||||||
fDisplayMode = mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetMode
|
|
||||||
void
|
|
||||||
DisplayDriver::GetMode(display_mode *mode)
|
|
||||||
{
|
|
||||||
if (!mode)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Lock();
|
|
||||||
*mode = fDisplayMode;
|
|
||||||
Unlock();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Sets the driver's Display Power Management System state
|
|
||||||
\param state The state which the driver should enter
|
|
||||||
\return B_OK if successful, B_ERROR for failure
|
|
||||||
|
|
||||||
This function will fail if the driver's rendering context does not support a
|
|
||||||
particular DPMS state. Use DPMSCapabilities to find out the supported states.
|
|
||||||
The default implementation supports only B_DPMS_ON.
|
|
||||||
*/
|
|
||||||
status_t
|
|
||||||
DisplayDriver::SetDPMSMode(const uint32 &state)
|
|
||||||
{
|
|
||||||
if (state != B_DPMS_ON)
|
|
||||||
return B_ERROR;
|
|
||||||
|
|
||||||
fDPMSState = state;
|
|
||||||
|
|
||||||
return B_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the driver's current DPMS state
|
|
||||||
\return The driver's current DPMS state
|
|
||||||
*/
|
|
||||||
uint32
|
|
||||||
DisplayDriver::DPMSMode()
|
|
||||||
{
|
|
||||||
return fDPMSState;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the driver's DPMS capabilities
|
|
||||||
\return The driver's DPMS capabilities
|
|
||||||
|
|
||||||
The capabilities are the modes supported by the driver. The default implementation
|
|
||||||
allows only B_DPMS_ON. Other possible states are B_DPMS_STANDBY, SUSPEND, and OFF.
|
|
||||||
*/
|
|
||||||
uint32
|
|
||||||
DisplayDriver::DPMSCapabilities()
|
|
||||||
{
|
|
||||||
return fDPMSCaps;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -52,8 +52,13 @@ static Blitter blitter;
|
|||||||
DisplayDriverImpl::DisplayDriverImpl()
|
DisplayDriverImpl::DisplayDriverImpl()
|
||||||
: DisplayDriver(),
|
: DisplayDriver(),
|
||||||
fLocker("DisplayDriver lock"),
|
fLocker("DisplayDriver lock"),
|
||||||
fCursorHandler(this)
|
fCursorHandler(this),
|
||||||
|
fDPMSState(B_DPMS_ON),
|
||||||
|
fDPMSCaps(B_DPMS_ON)
|
||||||
{
|
{
|
||||||
|
fDisplayMode.virtual_width = 640;
|
||||||
|
fDisplayMode.virtual_height = 480;
|
||||||
|
fDisplayMode.space = B_RGBA32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2421,6 +2426,86 @@ DisplayDriverImpl::Unlock()
|
|||||||
fLocker.Unlock();
|
fLocker.Unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Protected Internal Functions
|
||||||
|
/*
|
||||||
|
\brief Sets the screen mode to specified resolution and color depth.
|
||||||
|
\param mode Data structure as defined in Screen.h
|
||||||
|
|
||||||
|
Subclasses must include calls to _SetDepth, _SetHeight, _SetWidth, and _SetMode
|
||||||
|
to update the state variables kept internally by the DisplayDriver class.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
DisplayDriverImpl::SetMode(const display_mode &mode)
|
||||||
|
{
|
||||||
|
fDisplayMode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMode
|
||||||
|
void
|
||||||
|
DisplayDriverImpl::GetMode(display_mode *mode)
|
||||||
|
{
|
||||||
|
if (!mode)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Lock();
|
||||||
|
*mode = fDisplayMode;
|
||||||
|
Unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
// DisplayMode
|
||||||
|
const display_mode*
|
||||||
|
DisplayDriverImpl::DisplayMode()
|
||||||
|
{
|
||||||
|
const display_mode* mode = NULL;
|
||||||
|
Lock();
|
||||||
|
mode = &fDisplayMode;
|
||||||
|
Unlock();
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Sets the driver's Display Power Management System state
|
||||||
|
\param state The state which the driver should enter
|
||||||
|
\return B_OK if successful, B_ERROR for failure
|
||||||
|
|
||||||
|
This function will fail if the driver's rendering context does not support a
|
||||||
|
particular DPMS state. Use DPMSCapabilities to find out the supported states.
|
||||||
|
The default implementation supports only B_DPMS_ON.
|
||||||
|
*/
|
||||||
|
status_t
|
||||||
|
DisplayDriverImpl::SetDPMSMode(const uint32 &state)
|
||||||
|
{
|
||||||
|
if (state != B_DPMS_ON)
|
||||||
|
return B_ERROR;
|
||||||
|
|
||||||
|
fDPMSState = state;
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Returns the driver's current DPMS state
|
||||||
|
\return The driver's current DPMS state
|
||||||
|
*/
|
||||||
|
uint32
|
||||||
|
DisplayDriverImpl::DPMSMode()
|
||||||
|
{
|
||||||
|
return fDPMSState;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Returns the driver's DPMS capabilities
|
||||||
|
\return The driver's DPMS capabilities
|
||||||
|
|
||||||
|
The capabilities are the modes supported by the driver. The default implementation
|
||||||
|
allows only B_DPMS_ON. Other possible states are B_DPMS_STANDBY, SUSPEND, and OFF.
|
||||||
|
*/
|
||||||
|
uint32
|
||||||
|
DisplayDriverImpl::DPMSCapabilities()
|
||||||
|
{
|
||||||
|
return fDPMSCaps;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Dumps the contents of the frame buffer to a file.
|
\brief Dumps the contents of the frame buffer to a file.
|
||||||
\param path Path and leaf of the file to be created without an extension
|
\param path Path and leaf of the file to be created without an extension
|
||||||
|
@ -297,6 +297,11 @@ class DisplayDriverImpl : public DisplayDriver {
|
|||||||
virtual bool Lock(bigtime_t timeout = B_INFINITE_TIMEOUT);
|
virtual bool Lock(bigtime_t timeout = B_INFINITE_TIMEOUT);
|
||||||
virtual void Unlock();
|
virtual void Unlock();
|
||||||
|
|
||||||
|
// display mode access
|
||||||
|
virtual void SetMode(const display_mode &mode);
|
||||||
|
virtual void GetMode(display_mode *mode);
|
||||||
|
virtual const display_mode* DisplayMode();
|
||||||
|
|
||||||
virtual bool DumpToFile(const char *path);
|
virtual bool DumpToFile(const char *path);
|
||||||
virtual ServerBitmap* DumpToBitmap();
|
virtual ServerBitmap* DumpToBitmap();
|
||||||
|
|
||||||
@ -304,6 +309,10 @@ class DisplayDriverImpl : public DisplayDriver {
|
|||||||
const LineArrayData *data,
|
const LineArrayData *data,
|
||||||
const DrawData *d);
|
const DrawData *d);
|
||||||
|
|
||||||
|
virtual status_t SetDPMSMode(const uint32 &state);
|
||||||
|
virtual uint32 DPMSMode();
|
||||||
|
virtual uint32 DPMSCapabilities();
|
||||||
|
|
||||||
virtual status_t GetDeviceInfo(accelerant_device_info *info);
|
virtual status_t GetDeviceInfo(accelerant_device_info *info);
|
||||||
|
|
||||||
virtual status_t GetModeList(display_mode **mode_list,
|
virtual status_t GetModeList(display_mode **mode_list,
|
||||||
@ -421,6 +430,10 @@ friend class WinBorder;
|
|||||||
protected:
|
protected:
|
||||||
BLocker fLocker;
|
BLocker fLocker;
|
||||||
CursorHandler fCursorHandler;
|
CursorHandler fCursorHandler;
|
||||||
|
|
||||||
|
display_mode fDisplayMode;
|
||||||
|
uint32 fDPMSState;
|
||||||
|
uint32 fDPMSCaps;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -64,12 +64,11 @@ DisplayDriverPainter::~DisplayDriverPainter()
|
|||||||
bool
|
bool
|
||||||
DisplayDriverPainter::Initialize()
|
DisplayDriverPainter::Initialize()
|
||||||
{
|
{
|
||||||
if (DisplayDriver::Initialize()) {
|
status_t err = fGraphicsCard->Initialize();
|
||||||
status_t err = fGraphicsCard->Initialize();
|
if (err < B_OK)
|
||||||
if (err < B_OK)
|
fprintf(stderr, "HWInterface::Initialize() failed: %s\n", strerror(err));
|
||||||
fprintf(stderr, "HWInterface::Initialize() failed: %s\n", strerror(err));
|
if (err >= B_OK)
|
||||||
return err >= B_OK;
|
return DisplayDriver::Initialize();
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -872,7 +871,6 @@ DisplayDriverPainter::SetMode(const display_mode &mode)
|
|||||||
{
|
{
|
||||||
if (Lock() && fGraphicsCard->SetMode(mode) >= B_OK) {
|
if (Lock() && fGraphicsCard->SetMode(mode) >= B_OK) {
|
||||||
fPainter->AttachToBuffer(fGraphicsCard->BackBuffer());
|
fPainter->AttachToBuffer(fGraphicsCard->BackBuffer());
|
||||||
DisplayDriver::SetMode(mode);
|
|
||||||
Unlock();
|
Unlock();
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "DisplayDriverPainter::SetMode() - unsupported mode!\n");
|
fprintf(stderr, "DisplayDriverPainter::SetMode() - unsupported mode!\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user