step 3, exracted code from DisplayDriver into DisplayDriverImpl, adjusted the existing implementations to derive from the new class, got rid of some "friend" stuff along the way, essentially I made room for the new Painter based DisplayDriver implementation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11986 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
aab32edf08
commit
10612543aa
|
@ -47,7 +47,8 @@
|
|||
\brief Sets up internal variables needed by AccelerantDriver
|
||||
|
||||
*/
|
||||
AccelerantDriver::AccelerantDriver(void) : DisplayDriver()
|
||||
AccelerantDriver::AccelerantDriver()
|
||||
: DisplayDriverImpl()
|
||||
{
|
||||
cursor=NULL;
|
||||
under_cursor=NULL;
|
||||
|
@ -63,7 +64,7 @@ AccelerantDriver::AccelerantDriver(void) : DisplayDriver()
|
|||
\brief Deletes the heap memory used by the AccelerantDriver
|
||||
|
||||
*/
|
||||
AccelerantDriver::~AccelerantDriver(void)
|
||||
AccelerantDriver::~AccelerantDriver()
|
||||
{
|
||||
if (cursor)
|
||||
delete cursor;
|
||||
|
@ -80,7 +81,7 @@ AccelerantDriver::~AccelerantDriver(void)
|
|||
Initialize sets up the driver for display, including the initial clearing
|
||||
of the screen. If things do not go as they should, false should be returned.
|
||||
*/
|
||||
bool AccelerantDriver::Initialize(void)
|
||||
bool AccelerantDriver::Initialize()
|
||||
{
|
||||
int i;
|
||||
char signature[1024];
|
||||
|
@ -181,8 +182,8 @@ bool AccelerantDriver::Initialize(void)
|
|||
RGBColor blue(0,0,255,0);
|
||||
FillRect(BRect(0,0,1024,768),blue);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
|
||||
return DisplayDriver::Initialize();
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -191,8 +192,10 @@ bool AccelerantDriver::Initialize(void)
|
|||
Any work done by Initialize() should be undone here. Note that Shutdown() is
|
||||
called even if Initialize() was unsuccessful.
|
||||
*/
|
||||
void AccelerantDriver::Shutdown(void)
|
||||
void AccelerantDriver::Shutdown()
|
||||
{
|
||||
DisplayDriver::Shutdown();
|
||||
|
||||
#ifdef RUN_UNDER_R5
|
||||
set_display_mode SetDisplayMode = (set_display_mode)accelerant_hook(B_SET_DISPLAY_MODE, NULL);
|
||||
if ( SetDisplayMode )
|
||||
|
|
|
@ -29,22 +29,24 @@
|
|||
#define _ACCELERANTDRIVER_H_
|
||||
|
||||
#include <Accelerant.h>
|
||||
#include "DisplayDriver.h"
|
||||
|
||||
#include "PatternHandler.h"
|
||||
#include "FontServer.h"
|
||||
#include "LayerData.h"
|
||||
|
||||
#include "DisplayDriverImpl.h"
|
||||
|
||||
class ServerBitmap;
|
||||
class ServerCursor;
|
||||
|
||||
class AccelerantDriver : public DisplayDriver
|
||||
class AccelerantDriver : public DisplayDriverImpl
|
||||
{
|
||||
public:
|
||||
AccelerantDriver(void);
|
||||
~AccelerantDriver(void);
|
||||
AccelerantDriver();
|
||||
~AccelerantDriver();
|
||||
|
||||
bool Initialize(void);
|
||||
void Shutdown(void);
|
||||
bool Initialize();
|
||||
void Shutdown();
|
||||
|
||||
virtual void InvertRect(const BRect &r);
|
||||
virtual void SetMode(const int32 &mode);
|
||||
|
@ -54,8 +56,8 @@ public:
|
|||
|
||||
/*
|
||||
virtual status_t SetDPMSMode(const uint32 &state);
|
||||
virtual uint32 DPMSMode(void) const;
|
||||
virtual uint32 DPMSCapabilities(void) const;
|
||||
virtual uint32 DPMSMode() const;
|
||||
virtual uint32 DPMSCapabilities() const;
|
||||
virtual status_t GetDeviceInfo(accelerant_device_info *info);
|
||||
virtual status_t GetModeList(display_mode **mode_list, uint32 *count);
|
||||
virtual status_t GetPixelClockLimits(display_mode *mode, uint32 *low, uint32 *high);
|
||||
|
|
|
@ -52,7 +52,11 @@ extern RGBColor workspace_default_color; // defined in AppServer.cpp
|
|||
Subclasses should follow DisplayDriver's lead and use this function mostly
|
||||
for initializing data members.
|
||||
*/
|
||||
BitmapDriver::BitmapDriver(void) : DisplayDriver()
|
||||
BitmapDriver::BitmapDriver()
|
||||
: DisplayDriverImpl(),
|
||||
// NOTE: fLineThickness appeared to be never
|
||||
// initialized in DisplayDriver
|
||||
fLineThickness(1)
|
||||
{
|
||||
fTarget=NULL;
|
||||
fGraphicsBuffer=NULL;
|
||||
|
@ -64,34 +68,10 @@ BitmapDriver::BitmapDriver(void) : DisplayDriver()
|
|||
|
||||
Subclasses should use the destructor mostly for freeing allocated heap space.
|
||||
*/
|
||||
BitmapDriver::~BitmapDriver(void)
|
||||
BitmapDriver::~BitmapDriver()
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Initializes the driver object.
|
||||
\return true if successful, false if not
|
||||
|
||||
Initialize sets up the driver for display, including the initial clearing
|
||||
of the screen. If things do not go as they should, false should be returned.
|
||||
*/
|
||||
bool BitmapDriver::Initialize(void)
|
||||
{
|
||||
// Nothing is needed because of SetTarget taking care of the work for us.
|
||||
return true;
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Shuts down the driver's video subsystem
|
||||
|
||||
Any work done by Initialize() should be undone here. Note that Shutdown() is
|
||||
called even if Initialize() was unsuccessful.
|
||||
*/
|
||||
void BitmapDriver::Shutdown(void)
|
||||
{
|
||||
// Nothing is needed here
|
||||
}
|
||||
|
||||
void BitmapDriver::SetTarget(ServerBitmap *target)
|
||||
{
|
||||
Lock();
|
||||
|
@ -669,7 +649,7 @@ bool BitmapDriver::AcquireBuffer(FBBitmap *fbmp)
|
|||
return true;
|
||||
}
|
||||
|
||||
void BitmapDriver::ReleaseBuffer(void)
|
||||
void BitmapDriver::ReleaseBuffer()
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -37,11 +37,13 @@
|
|||
#include <Region.h> // for clipping_rect definition
|
||||
#include <Bitmap.h>
|
||||
#include <OS.h>
|
||||
#include "DisplayDriver.h"
|
||||
|
||||
#include "FontServer.h"
|
||||
#include "GraphicsBuffer.h"
|
||||
#include "PixelRenderer.h"
|
||||
|
||||
#include "DisplayDriverImpl.h"
|
||||
|
||||
class ServerCursor;
|
||||
class ServerBitmap;
|
||||
class RGBColor;
|
||||
|
@ -60,17 +62,14 @@ class PatternHandler;
|
|||
Usage: Allocate and call SetTarget on the desired ServerBitmap and start calling
|
||||
graphics methods. All ServerBitmap memory belongs to the BitmapManager.
|
||||
*/
|
||||
class BitmapDriver : public DisplayDriver
|
||||
class BitmapDriver : public DisplayDriverImpl
|
||||
{
|
||||
public:
|
||||
BitmapDriver(void);
|
||||
~BitmapDriver(void);
|
||||
|
||||
bool Initialize(void);
|
||||
void Shutdown(void);
|
||||
BitmapDriver();
|
||||
~BitmapDriver();
|
||||
|
||||
void SetTarget(ServerBitmap *target);
|
||||
ServerBitmap *GetTarget(void) const { return fTarget; }
|
||||
ServerBitmap *GetTarget() const { return fTarget; }
|
||||
|
||||
// Settings functions
|
||||
// virtual void DrawBitmap(ServerBitmap *bmp, const BRect &src, const BRect &dest, const DrawData *d);
|
||||
|
@ -80,7 +79,7 @@ public:
|
|||
virtual void InvertRect(const BRect &rect);
|
||||
protected:
|
||||
virtual bool AcquireBuffer(FBBitmap *bmp);
|
||||
virtual void ReleaseBuffer(void);
|
||||
virtual void ReleaseBuffer();
|
||||
|
||||
virtual void Blit(const BRect &src, const BRect &dest, const DrawData *d);
|
||||
virtual void FillSolidRect(const BRect &rect, const RGBColor &color);
|
||||
|
@ -102,6 +101,10 @@ protected:
|
|||
ServerBitmap *fTarget;
|
||||
GraphicsBuffer *fGraphicsBuffer;
|
||||
PixelRenderer *fPixelRenderer;
|
||||
|
||||
// NOTE: completely outdated?
|
||||
int fLineThickness;
|
||||
PatternHandler fDrawPattern;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef CURSORDATA_H_
|
||||
#define CURSORDATA_H_
|
||||
|
||||
#include <SupportDefs.h>
|
||||
|
||||
extern int8 default_cursor_data[];
|
||||
extern int8 default_text_data[];
|
||||
extern int8 default_move_data[];
|
||||
|
|
|
@ -36,6 +36,7 @@ CursorHandler::CursorHandler(DisplayDriver *driver)
|
|||
fSavedData(NULL),
|
||||
fCursor(NULL),
|
||||
fHideLevel(0),
|
||||
fDrawData(),
|
||||
fDriverHidden(false),
|
||||
fIsObscured(false),
|
||||
fValidSaveData(false)
|
||||
|
@ -92,28 +93,34 @@ void CursorHandler::SetCursor(ServerCursor *cursor)
|
|||
|
||||
This function fails if asked to move the cursor outside the screen boundaries
|
||||
*/
|
||||
void CursorHandler::MoveTo(const BPoint &pt)
|
||||
void CursorHandler::MoveTo(BPoint pt)
|
||||
{
|
||||
if(pt.x<0 || pt.y<0 || (pt.x>fDriver->fDisplayMode.virtual_width-1) ||
|
||||
(pt.y>fDriver->fDisplayMode.virtual_height-1))
|
||||
return;
|
||||
pt.x = max_c(pt.x, 0.0);
|
||||
pt.y = max_c(pt.y, 0.0);
|
||||
pt.x = min_c(pt.x, fDriver->DisplayMode()->virtual_width - 1);
|
||||
pt.y = min_c(pt.y, fDriver->DisplayMode()->virtual_height - 1);
|
||||
|
||||
if (fCursorPos != pt) {
|
||||
|
||||
fCursorPos=pt;
|
||||
if (!fSavedData)
|
||||
debugger("NULL savedata\n");
|
||||
fDriver->CopyBitmap(fSavedData,fSavedData->Bounds(),fOldPosition,&(fDriver->fDrawData));
|
||||
fPosition.OffsetTo(fCursorPos.x-fCursor->GetHotSpot().x,
|
||||
fCursorPos.y-fCursor->GetHotSpot().y);
|
||||
fDriver->CopyToBitmap(fSavedData,fPosition);
|
||||
|
||||
fDriver->fDrawData.draw_mode=B_OP_ALPHA;
|
||||
fDriver->CopyBitmap(fCursor,fCursor->Bounds(),fPosition,&(fDriver->fDrawData));
|
||||
fDriver->fDrawData.draw_mode=B_OP_COPY;
|
||||
|
||||
fDriver->Invalidate(fOldPosition);
|
||||
fOldPosition=fPosition;
|
||||
|
||||
fDriver->Invalidate(fPosition);
|
||||
fCursorPos=pt;
|
||||
|
||||
if (!fSavedData)
|
||||
debugger("NULL savedata\n");
|
||||
|
||||
fDriver->CopyBitmap(fSavedData,fSavedData->Bounds(),fOldPosition,&fDrawData);
|
||||
fPosition.OffsetTo(fCursorPos.x-fCursor->GetHotSpot().x,
|
||||
fCursorPos.y-fCursor->GetHotSpot().y);
|
||||
fDriver->CopyToBitmap(fSavedData,fPosition);
|
||||
|
||||
fDrawData.draw_mode=B_OP_ALPHA;
|
||||
fDriver->CopyBitmap(fCursor,fCursor->Bounds(),fPosition,&fDrawData);
|
||||
fDrawData.draw_mode=B_OP_COPY;
|
||||
|
||||
fDriver->Invalidate(fOldPosition);
|
||||
fOldPosition=fPosition;
|
||||
|
||||
fDriver->Invalidate(fPosition);
|
||||
}
|
||||
}
|
||||
|
||||
//! Shows the cursor. Unlike BView, calls are not cumulative
|
||||
|
@ -121,31 +128,32 @@ void CursorHandler::Show(void)
|
|||
{
|
||||
// This call is pretty simple -- save the area underneath the cursor and draw the thing
|
||||
|
||||
if(fHideLevel==0)
|
||||
if (fHideLevel == 0)
|
||||
return;
|
||||
|
||||
fIsObscured=false;
|
||||
fIsObscured = false;
|
||||
fHideLevel--;
|
||||
|
||||
if(fHideLevel>0)
|
||||
if (fHideLevel > 0)
|
||||
return;
|
||||
|
||||
fOldPosition=fPosition;
|
||||
fOldPosition = fPosition;
|
||||
|
||||
if(!fCursor)
|
||||
if (!fCursor)
|
||||
return;
|
||||
|
||||
fValidSaveData=true;
|
||||
fValidSaveData = true;
|
||||
|
||||
if(!fSavedData)
|
||||
fSavedData=new UtilityBitmap(fCursor->Bounds(),(color_space)fDriver->fDisplayMode.space,0);
|
||||
if (!fSavedData)
|
||||
fSavedData = new UtilityBitmap(fCursor->Bounds(),
|
||||
(color_space)fDriver->DisplayMode()->space, 0);
|
||||
|
||||
fDriver->CopyToBitmap(fSavedData,fPosition);
|
||||
fDriver->CopyToBitmap(fSavedData, fPosition);
|
||||
|
||||
// Draw the data to the buffer
|
||||
fDriver->fDrawData.draw_mode=B_OP_ALPHA;
|
||||
fDriver->CopyBitmap(fCursor,fCursor->Bounds(),fPosition,&(fDriver->fDrawData));
|
||||
fDriver->fDrawData.draw_mode=B_OP_COPY;
|
||||
fDrawData.draw_mode = B_OP_ALPHA;
|
||||
fDriver->CopyBitmap(fCursor, fCursor->Bounds(), fPosition, &fDrawData);
|
||||
fDrawData.draw_mode = B_OP_COPY;
|
||||
fDriver->Invalidate(fPosition);
|
||||
}
|
||||
|
||||
|
@ -172,7 +180,7 @@ void CursorHandler::Hide(void)
|
|||
if(!fSavedData)
|
||||
fSavedData=new UtilityBitmap(fCursor);
|
||||
|
||||
fDriver->CopyBitmap(fSavedData,fSavedData->Bounds(),fOldPosition,&(fDriver->fDrawData));
|
||||
fDriver->CopyBitmap(fSavedData,fSavedData->Bounds(),fOldPosition,&fDrawData);
|
||||
fDriver->Invalidate(fPosition);
|
||||
}
|
||||
|
||||
|
@ -193,7 +201,7 @@ void CursorHandler::Obscure(void)
|
|||
return;
|
||||
}
|
||||
|
||||
fDriver->CopyBitmap(fSavedData,fSavedData->Bounds(),fOldPosition,&(fDriver->fDrawData));
|
||||
fDriver->CopyBitmap(fSavedData,fSavedData->Bounds(),fOldPosition,&fDrawData);
|
||||
fDriver->Invalidate(fPosition);
|
||||
}
|
||||
|
||||
|
@ -210,7 +218,7 @@ void CursorHandler::DriverHide(void)
|
|||
if(!fSavedData)
|
||||
fSavedData=new UtilityBitmap(fCursor);
|
||||
|
||||
fDriver->CopyBitmap(fSavedData,fSavedData->Bounds(),fOldPosition,&(fDriver->fDrawData));
|
||||
fDriver->CopyBitmap(fSavedData,fSavedData->Bounds(),fOldPosition,&fDrawData);
|
||||
fDriver->Invalidate(fPosition);
|
||||
}
|
||||
|
||||
|
@ -229,13 +237,13 @@ void CursorHandler::DriverShow(void)
|
|||
fValidSaveData=true;
|
||||
|
||||
if(!fSavedData)
|
||||
fSavedData=new UtilityBitmap(fCursor->Bounds(),(color_space)fDriver->fDisplayMode.space,0);
|
||||
fSavedData=new UtilityBitmap(fCursor->Bounds(),(color_space)fDriver->DisplayMode()->space,0);
|
||||
|
||||
fDriver->CopyToBitmap(fSavedData,fPosition);
|
||||
|
||||
// Draw the data to the buffer
|
||||
fDriver->fDrawData.draw_mode=B_OP_ALPHA;
|
||||
fDriver->CopyBitmap(fCursor,fCursor->Bounds(),fPosition,&(fDriver->fDrawData));
|
||||
fDriver->fDrawData.draw_mode=B_OP_COPY;
|
||||
fDrawData.draw_mode=B_OP_ALPHA;
|
||||
fDriver->CopyBitmap(fCursor,fCursor->Bounds(),fPosition,&fDrawData);
|
||||
fDrawData.draw_mode=B_OP_COPY;
|
||||
fDriver->Invalidate(fPosition);
|
||||
}
|
||||
|
|
|
@ -102,7 +102,8 @@ extern RGBColor workspace_default_color;
|
|||
by a couple orders of magnitude
|
||||
--------------------------------------------------------------------------------------- */
|
||||
|
||||
DirectDriver::DirectDriver(void)
|
||||
DirectDriver::DirectDriver()
|
||||
: DisplayDriverImpl()
|
||||
{
|
||||
ATRACE(("DirectDriver::DirectDriver\n"));
|
||||
|
||||
|
@ -133,7 +134,7 @@ DirectDriver::DirectDriver(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
DirectDriver::~DirectDriver(void)
|
||||
DirectDriver::~DirectDriver()
|
||||
{
|
||||
ATRACE(("DirectDriver::~DirectDriver\n"));
|
||||
Lock();
|
||||
|
@ -143,20 +144,25 @@ DirectDriver::~DirectDriver(void)
|
|||
Unlock();
|
||||
}
|
||||
|
||||
bool DirectDriver::Initialize(void)
|
||||
bool DirectDriver::Initialize()
|
||||
{
|
||||
ATRACE(("DirectDriver::Initialize\n"));
|
||||
screenwin=new DDWindow(640,480,B_RGB32,this);
|
||||
while(find_thread("drawing_thread")==B_NAME_NOT_FOUND)
|
||||
{
|
||||
ATRACE(("\tWaiting for the drawing thread to spawn\n"));
|
||||
snooze(100);
|
||||
if (DisplayDriver::Initialize()) {
|
||||
ATRACE(("DirectDriver::Initialize\n"));
|
||||
screenwin=new DDWindow(640,480,B_RGB32,this);
|
||||
while(find_thread("drawing_thread")==B_NAME_NOT_FOUND)
|
||||
{
|
||||
ATRACE(("\tWaiting for the drawing thread to spawn\n"));
|
||||
snooze(100);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void DirectDriver::Shutdown(void)
|
||||
void DirectDriver::Shutdown()
|
||||
{
|
||||
DisplayDriver::Shutdown();
|
||||
|
||||
ATRACE(("DirectDriver::Shutdown\n"));
|
||||
screenwin->PostMessage(B_QUIT_REQUESTED);
|
||||
|
||||
|
@ -433,14 +439,14 @@ status_t DirectDriver::SetDPMSMode(const uint32 &state)
|
|||
return BScreen().SetDPMS(state);
|
||||
}
|
||||
|
||||
uint32 DirectDriver::DPMSMode(void) const
|
||||
uint32 DirectDriver::DPMSMode() const
|
||||
{
|
||||
STRACE(("DirectDriver::DPMSMode\n"));
|
||||
// This is a hack, but should do enough to be ok for our purposes
|
||||
return BScreen().DPMSState();
|
||||
}
|
||||
|
||||
uint32 DirectDriver::DPMSCapabilities(void) const
|
||||
uint32 DirectDriver::DPMSCapabilities() const
|
||||
{
|
||||
STRACE(("DirectDriver::DPMSCapabilities\n"));
|
||||
|
||||
|
@ -1039,7 +1045,7 @@ DDWindow::DDWindow(uint16 width, uint16 height, color_space space, DirectDriver
|
|||
Show();
|
||||
}
|
||||
|
||||
DDWindow::~DDWindow(void)
|
||||
DDWindow::~DDWindow()
|
||||
{
|
||||
int32 result;
|
||||
|
||||
|
@ -1097,7 +1103,7 @@ void DDWindow::DirectConnected(direct_buffer_info *info)
|
|||
locker.Unlock();
|
||||
}
|
||||
|
||||
bool DDWindow::QuitRequested(void)
|
||||
bool DDWindow::QuitRequested()
|
||||
{
|
||||
port_id serverport=find_port(SERVER_PORT_NAME);
|
||||
|
||||
|
@ -1296,12 +1302,12 @@ int32 DDWindow::DrawingThread(void *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
RectPipe::RectPipe(void)
|
||||
RectPipe::RectPipe()
|
||||
{
|
||||
list.MakeEmpty();
|
||||
}
|
||||
|
||||
RectPipe::~RectPipe(void)
|
||||
RectPipe::~RectPipe()
|
||||
{
|
||||
lock.Lock();
|
||||
clipping_rect *rect;
|
||||
|
@ -1357,7 +1363,7 @@ bool RectPipe::GetRect(clipping_rect *rect)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool RectPipe::HasRects(void)
|
||||
bool RectPipe::HasRects()
|
||||
{
|
||||
lock.Lock();
|
||||
bool value=has_rects;
|
||||
|
|
|
@ -34,11 +34,12 @@
|
|||
#include <Region.h> // for clipping_rect definition
|
||||
#include <GraphicsCard.h>
|
||||
#include <Message.h>
|
||||
#include "DisplayDriver.h"
|
||||
#include "PortLink.h"
|
||||
#include <DirectWindow.h>
|
||||
#include "PatternHandler.h"
|
||||
|
||||
#include "DisplayDriverImpl.h"
|
||||
|
||||
class UtilityBitmap;
|
||||
class SDWindow;
|
||||
class LayerData;
|
||||
|
@ -51,14 +52,14 @@ class DirectDriver;
|
|||
class RectPipe
|
||||
{
|
||||
public:
|
||||
RectPipe(void);
|
||||
~RectPipe(void);
|
||||
RectPipe();
|
||||
~RectPipe();
|
||||
|
||||
void PutRect(const BRect &rect);
|
||||
void PutRect(const clipping_rect &rect);
|
||||
bool GetRect(clipping_rect *rect);
|
||||
bool HasRects(void);
|
||||
int32 CountRects(void) const { return list.CountItems(); }
|
||||
bool HasRects();
|
||||
int32 CountRects() const { return list.CountItems(); }
|
||||
protected:
|
||||
BList list;
|
||||
BLocker lock;
|
||||
|
@ -81,9 +82,9 @@ class DDWindow : public BDirectWindow
|
|||
{
|
||||
public:
|
||||
DDWindow(uint16 width, uint16 height, color_space space, DirectDriver *owner);
|
||||
~DDWindow(void);
|
||||
~DDWindow();
|
||||
|
||||
virtual bool QuitRequested(void);
|
||||
virtual bool QuitRequested();
|
||||
virtual void DirectConnected(direct_buffer_info *info);
|
||||
virtual void WindowActivated(bool active);
|
||||
static int32 DrawingThread(void *data);
|
||||
|
@ -114,14 +115,14 @@ public:
|
|||
the video display. An updater thread simply locks access to this bitmap, copies data to
|
||||
the framebuffer, and releases access. Derived DisplayDriver functions operate on this bitmap.
|
||||
*/
|
||||
class DirectDriver : public DisplayDriver
|
||||
class DirectDriver : public DisplayDriverImpl
|
||||
{
|
||||
public:
|
||||
DirectDriver(void);
|
||||
~DirectDriver(void);
|
||||
DirectDriver();
|
||||
~DirectDriver();
|
||||
|
||||
virtual bool Initialize(void);
|
||||
virtual void Shutdown(void);
|
||||
virtual bool Initialize();
|
||||
virtual void Shutdown();
|
||||
|
||||
// void DrawBitmap(ServerBitmap *bmp, const BRect &src, const BRect &dest, const DrawData *d);
|
||||
|
||||
|
@ -134,8 +135,8 @@ public:
|
|||
virtual bool DumpToFile(const char *path);
|
||||
|
||||
virtual status_t SetDPMSMode(const uint32 &state);
|
||||
virtual uint32 DPMSMode(void) const;
|
||||
virtual uint32 DPMSCapabilities(void) const;
|
||||
virtual uint32 DPMSMode() const;
|
||||
virtual uint32 DPMSCapabilities() const;
|
||||
virtual status_t GetDeviceInfo(accelerant_device_info *info);
|
||||
virtual status_t GetModeList(display_mode **mode_list, uint32 *count);
|
||||
virtual status_t GetPixelClockLimits(display_mode *mode, uint32 *low, uint32 *high);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -17,6 +17,7 @@ SharedLibrary appserver :
|
|||
CursorHandler.cpp
|
||||
Decorator.cpp
|
||||
DisplayDriver.cpp
|
||||
DisplayDriverImpl.cpp
|
||||
DisplaySupport.cpp
|
||||
FontFamily.cpp
|
||||
GraphicsBuffer.cpp
|
||||
|
|
|
@ -110,7 +110,7 @@ VDView::VDView(BRect bounds)
|
|||
oldcursorframe=cursor->Bounds();
|
||||
}
|
||||
|
||||
VDView::~VDView(void)
|
||||
VDView::~VDView()
|
||||
{
|
||||
delete serverlink;
|
||||
delete cursor;
|
||||
|
@ -119,7 +119,7 @@ VDView::~VDView(void)
|
|||
delete viewbmp;
|
||||
}
|
||||
|
||||
void VDView::AttachedToWindow(void)
|
||||
void VDView::AttachedToWindow()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -243,7 +243,7 @@ VDWindow::VDWindow(BRect frame)
|
|||
AddChild(view);
|
||||
}
|
||||
|
||||
VDWindow::~VDWindow(void)
|
||||
VDWindow::~VDWindow()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -441,7 +441,7 @@ void VDWindow::MessageReceived(BMessage *msg)
|
|||
}
|
||||
}
|
||||
|
||||
bool VDWindow::QuitRequested(void)
|
||||
bool VDWindow::QuitRequested()
|
||||
{
|
||||
port_id serverport=find_port(SERVER_PORT_NAME);
|
||||
|
||||
|
@ -483,7 +483,8 @@ void VDWindow::WindowActivated(bool active)
|
|||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
ViewDriver::ViewDriver(void)
|
||||
ViewDriver::ViewDriver()
|
||||
: DisplayDriverImpl()
|
||||
{
|
||||
fDisplayMode.virtual_width=640;
|
||||
fDisplayMode.virtual_height=480;
|
||||
|
@ -500,7 +501,7 @@ ViewDriver::ViewDriver(void)
|
|||
framebuffer->Unlock();
|
||||
}
|
||||
|
||||
ViewDriver::~ViewDriver(void)
|
||||
ViewDriver::~ViewDriver()
|
||||
{
|
||||
if(is_initialized)
|
||||
{
|
||||
|
@ -510,7 +511,8 @@ ViewDriver::~ViewDriver(void)
|
|||
}
|
||||
}
|
||||
|
||||
bool ViewDriver::Initialize(void)
|
||||
bool
|
||||
ViewDriver::Initialize()
|
||||
{
|
||||
Lock();
|
||||
|
||||
|
@ -531,11 +533,14 @@ bool ViewDriver::Initialize(void)
|
|||
// because the window is locked until Show() is first called
|
||||
screenwin->Show();
|
||||
Unlock();
|
||||
return true;
|
||||
|
||||
return DisplayDriver::Initialize();
|
||||
}
|
||||
|
||||
void ViewDriver::Shutdown(void)
|
||||
void ViewDriver::Shutdown()
|
||||
{
|
||||
DisplayDriver::Shutdown();
|
||||
|
||||
Lock();
|
||||
is_initialized=false;
|
||||
Unlock();
|
||||
|
@ -916,13 +921,13 @@ status_t ViewDriver::SetDPMSMode(const uint32 &state)
|
|||
return BScreen().SetDPMS(state);
|
||||
}
|
||||
|
||||
uint32 ViewDriver::DPMSMode(void) const
|
||||
uint32 ViewDriver::DPMSMode() const
|
||||
{
|
||||
// See note for SetDPMSMode if there are questions
|
||||
return BScreen().DPMSState();
|
||||
}
|
||||
|
||||
uint32 ViewDriver::DPMSCapabilities(void) const
|
||||
uint32 ViewDriver::DPMSCapabilities() const
|
||||
{
|
||||
// See note for SetDPMSMode if there are questions
|
||||
return BScreen().DPMSCapabilites();
|
||||
|
@ -1205,7 +1210,7 @@ bool ViewDriver::AcquireBuffer(FBBitmap *bmp)
|
|||
return true;
|
||||
}
|
||||
|
||||
void ViewDriver::ReleaseBuffer(void)
|
||||
void ViewDriver::ReleaseBuffer()
|
||||
{
|
||||
if(!is_initialized)
|
||||
return;
|
||||
|
|
|
@ -36,9 +36,10 @@
|
|||
#include <Message.h>
|
||||
#include <Region.h>
|
||||
#include <Font.h>
|
||||
#include "DisplayDriver.h"
|
||||
#include "FontServer.h"
|
||||
|
||||
#include "DisplayDriverImpl.h"
|
||||
|
||||
class BBitmap;
|
||||
class BPortLink;
|
||||
class VDWindow;
|
||||
|
@ -48,8 +49,8 @@ class VDView : public BView
|
|||
{
|
||||
public:
|
||||
VDView(BRect bounds);
|
||||
~VDView(void);
|
||||
void AttachedToWindow(void);
|
||||
~VDView();
|
||||
void AttachedToWindow();
|
||||
void Draw(BRect rect);
|
||||
void MouseDown(BPoint pt);
|
||||
void MouseMoved(BPoint pt, uint32 transit, const BMessage *msg);
|
||||
|
@ -70,9 +71,9 @@ class VDWindow : public BWindow
|
|||
{
|
||||
public:
|
||||
VDWindow(BRect frame);
|
||||
~VDWindow(void);
|
||||
~VDWindow();
|
||||
void MessageReceived(BMessage *msg);
|
||||
bool QuitRequested(void);
|
||||
bool QuitRequested();
|
||||
void WindowActivated(bool active);
|
||||
|
||||
VDView *view;
|
||||
|
@ -96,14 +97,14 @@ public:
|
|||
VDWindow - does most of the work.
|
||||
VDView - doesn't do all that much except display the rendered bitmap
|
||||
*/
|
||||
class ViewDriver : public DisplayDriver
|
||||
class ViewDriver : public DisplayDriverImpl
|
||||
{
|
||||
public:
|
||||
ViewDriver(void);
|
||||
~ViewDriver(void);
|
||||
ViewDriver();
|
||||
~ViewDriver();
|
||||
|
||||
virtual bool Initialize(void); // Sets the driver
|
||||
virtual void Shutdown(void); // You never know when you'll need this
|
||||
virtual bool Initialize(); // Sets the driver
|
||||
virtual void Shutdown(); // You never know when you'll need this
|
||||
|
||||
// Drawing functions
|
||||
// void DrawBitmap(ServerBitmap *bmp, const BRect &src, const BRect &dest, const DrawData *d);
|
||||
|
@ -120,8 +121,8 @@ public:
|
|||
VDWindow *screenwin;
|
||||
|
||||
virtual status_t SetDPMSMode(const uint32 &state);
|
||||
virtual uint32 DPMSMode(void) const;
|
||||
virtual uint32 DPMSCapabilities(void) const;
|
||||
virtual uint32 DPMSMode() const;
|
||||
virtual uint32 DPMSCapabilities() const;
|
||||
virtual status_t GetDeviceInfo(accelerant_device_info *info);
|
||||
virtual status_t GetModeList(display_mode **mode_list, uint32 *count);
|
||||
virtual status_t GetPixelClockLimits(display_mode *mode, uint32 *low, uint32 *high);
|
||||
|
@ -146,7 +147,7 @@ protected:
|
|||
|
||||
|
||||
virtual bool AcquireBuffer(FBBitmap *bmp);
|
||||
virtual void ReleaseBuffer(void);
|
||||
virtual void ReleaseBuffer();
|
||||
virtual void Invalidate(const BRect &r);
|
||||
|
||||
// void BlitMono2RGB32(FT_Bitmap *src, BPoint pt, DrawData *d);
|
||||
|
|
Loading…
Reference in New Issue