Add some of the hardware acceleration
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3070 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
1b7390044f
commit
28adeff1cb
@ -45,7 +45,6 @@
|
|||||||
#define CHECK_X(a) ( (a >= 0) || (a <= mDisplayMode.virtual_width-1) )
|
#define CHECK_X(a) ( (a >= 0) || (a <= mDisplayMode.virtual_width-1) )
|
||||||
#define CHECK_Y(a) ( (a >= 0) || (a <= mDisplayMode.virtual_height-1) )
|
#define CHECK_Y(a) ( (a >= 0) || (a <= mDisplayMode.virtual_height-1) )
|
||||||
|
|
||||||
/* TODO: Need to check which functions should move the pen position */
|
|
||||||
/* TODO: Add handling of draw modes */
|
/* TODO: Add handling of draw modes */
|
||||||
|
|
||||||
class AccLineCalc
|
class AccLineCalc
|
||||||
@ -270,6 +269,14 @@ bool AccelerantDriver::Initialize(void)
|
|||||||
if ( GetFrameBufferConfig(&mFrameBufferConfig) != B_OK )
|
if ( GetFrameBufferConfig(&mFrameBufferConfig) != B_OK )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
AcquireEngine = (acquire_engine)accelerant_hook(B_ACQUIRE_ENGINE,NULL);
|
||||||
|
ReleaseEngine = (release_engine)accelerant_hook(B_RELEASE_ENGINE,NULL);
|
||||||
|
accFillRect = (fill_rectangle)accelerant_hook(B_FILL_RECTANGLE,NULL);
|
||||||
|
accInvertRect = (invert_rectangle)accelerant_hook(B_INVERT_RECTANGLE,NULL);
|
||||||
|
accSetCursorShape = (set_cursor_shape)accelerant_hook(B_SET_CURSOR_SHAPE,NULL);
|
||||||
|
accMoveCursor = (move_cursor)accelerant_hook(B_MOVE_CURSOR,NULL);
|
||||||
|
accShowCursor = (show_cursor)accelerant_hook(B_SHOW_CURSOR,NULL);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,6 +312,7 @@ void AccelerantDriver::Shutdown(void)
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::CopyBits(BRect src, BRect dest)
|
void AccelerantDriver::CopyBits(BRect src, BRect dest)
|
||||||
{
|
{
|
||||||
|
/* TODO: implement */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -319,6 +327,7 @@ void AccelerantDriver::CopyBits(BRect src, BRect dest)
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::DrawBitmap(ServerBitmap *bmp, BRect src, BRect dest, LayerData *d)
|
void AccelerantDriver::DrawBitmap(ServerBitmap *bmp, BRect src, BRect dest, LayerData *d)
|
||||||
{
|
{
|
||||||
|
/* TODO: implement */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -515,6 +524,7 @@ void AccelerantDriver::FillArc(BRect r, float angle, float span, LayerData *d, i
|
|||||||
float oldpensize;
|
float oldpensize;
|
||||||
BPoint center(xc,yc);
|
BPoint center(xc,yc);
|
||||||
|
|
||||||
|
/* TODO: Fix this */
|
||||||
/* This should be optimized later. It is quick for the filled quadrants, but
|
/* This should be optimized later. It is quick for the filled quadrants, but
|
||||||
is inefficient for the partially filled quadrants.
|
is inefficient for the partially filled quadrants.
|
||||||
*/
|
*/
|
||||||
@ -691,6 +701,7 @@ void AccelerantDriver::FillBezier(BPoint *pts, LayerData *d, int8 *pat)
|
|||||||
double X, Y, dx, ddx, dddx, dy, ddy, dddy;
|
double X, Y, dx, ddx, dddx, dy, ddy, dddy;
|
||||||
float oldpensize;
|
float oldpensize;
|
||||||
|
|
||||||
|
/* TODO: Fix this */
|
||||||
_Lock();
|
_Lock();
|
||||||
AccLineCalc line(pts[0], pts[3]);
|
AccLineCalc line(pts[0], pts[3]);
|
||||||
oldpensize = d->pensize;
|
oldpensize = d->pensize;
|
||||||
@ -971,8 +982,86 @@ void AccelerantDriver::FillPolygon(BPoint *ptlist, int32 numpts, BRect rect, Lay
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::FillRect(BRect r, LayerData *d, int8 *pat)
|
void AccelerantDriver::FillRect(BRect r, LayerData *d, int8 *pat)
|
||||||
{
|
{
|
||||||
/* Need to add check for possible hardware acceleration of this */
|
|
||||||
_Lock();
|
_Lock();
|
||||||
|
#ifndef DISABLE_HARDWARE_ACCELERATION
|
||||||
|
if ( accFillRect && AcquireEngine && (((uint8)*pat == 0xFF) || (*pat == 0)) )
|
||||||
|
{
|
||||||
|
bool solidColor = true;
|
||||||
|
int i;
|
||||||
|
for (i=1; i<8; i++)
|
||||||
|
if ( pat[i] != pat[i-1] )
|
||||||
|
solidColor = false;
|
||||||
|
if ( solidColor && (AcquireEngine(0,0,NULL,&mEngineToken) == B_OK) )
|
||||||
|
{
|
||||||
|
fill_rect_params fillParams;
|
||||||
|
uint32 color=0;
|
||||||
|
fillParams.right = (uint16)r.right;
|
||||||
|
fillParams.left = (uint16)r.left;
|
||||||
|
fillParams.top = (uint16)r.top;
|
||||||
|
fillParams.bottom = (uint16)r.bottom;
|
||||||
|
if ( (uint8)*pat == 0xFF )
|
||||||
|
{
|
||||||
|
switch (mDisplayMode.space)
|
||||||
|
{
|
||||||
|
case B_CMAP8:
|
||||||
|
case B_GRAY8:
|
||||||
|
color = d->highcolor.GetColor8();
|
||||||
|
break;
|
||||||
|
case B_RGB16_BIG:
|
||||||
|
case B_RGB16_LITTLE:
|
||||||
|
case B_RGB15_BIG:
|
||||||
|
case B_RGBA15_BIG:
|
||||||
|
case B_RGB15_LITTLE:
|
||||||
|
case B_RGBA15_LITTLE:
|
||||||
|
color = d->highcolor.GetColor16();
|
||||||
|
break;
|
||||||
|
case B_RGB32_BIG:
|
||||||
|
case B_RGBA32_BIG:
|
||||||
|
case B_RGB32_LITTLE:
|
||||||
|
case B_RGBA32_LITTLE:
|
||||||
|
{
|
||||||
|
rgb_color rgbcolor = d->highcolor.GetColor32();
|
||||||
|
color = (rgbcolor.alpha << 24) | (rgbcolor.red << 16) | (rgbcolor.green << 8) | (rgbcolor.blue);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (mDisplayMode.space)
|
||||||
|
{
|
||||||
|
case B_CMAP8:
|
||||||
|
case B_GRAY8:
|
||||||
|
color = d->lowcolor.GetColor8();
|
||||||
|
break;
|
||||||
|
case B_RGB16_BIG:
|
||||||
|
case B_RGB16_LITTLE:
|
||||||
|
case B_RGB15_BIG:
|
||||||
|
case B_RGBA15_BIG:
|
||||||
|
case B_RGB15_LITTLE:
|
||||||
|
case B_RGBA15_LITTLE:
|
||||||
|
color = d->lowcolor.GetColor16();
|
||||||
|
break;
|
||||||
|
case B_RGB32_BIG:
|
||||||
|
case B_RGBA32_BIG:
|
||||||
|
case B_RGB32_LITTLE:
|
||||||
|
case B_RGBA32_LITTLE:
|
||||||
|
{
|
||||||
|
rgb_color rgbcolor = d->lowcolor.GetColor32();
|
||||||
|
color = (rgbcolor.alpha << 24) | (rgbcolor.red << 16) | (rgbcolor.green << 8) | (rgbcolor.blue);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
accFillRect(mEngineToken, color, &fillParams, 1);
|
||||||
|
if ( ReleaseEngine )
|
||||||
|
ReleaseEngine(mEngineToken,NULL);
|
||||||
|
_Unlock();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
PatternHandler pattern(pat);
|
PatternHandler pattern(pat);
|
||||||
pattern.SetColors(d->highcolor, d->lowcolor);
|
pattern.SetColors(d->highcolor, d->lowcolor);
|
||||||
|
|
||||||
@ -1202,10 +1291,14 @@ void AccelerantDriver::FillTriangle(BPoint *pts, BRect r, LayerData *d, int8 *pa
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::HideCursor(void)
|
void AccelerantDriver::HideCursor(void)
|
||||||
{
|
{
|
||||||
/* Need to check for hardware cursor support */
|
|
||||||
_Lock();
|
_Lock();
|
||||||
if(!IsCursorHidden())
|
if(!IsCursorHidden())
|
||||||
BlitBitmap(under_cursor,under_cursor->Bounds(),cursorframe, B_OP_COPY);
|
{
|
||||||
|
if ( accShowCursor )
|
||||||
|
accShowCursor(false);
|
||||||
|
else
|
||||||
|
BlitBitmap(under_cursor,under_cursor->Bounds(),cursorframe, B_OP_COPY);
|
||||||
|
}
|
||||||
DisplayDriver::HideCursor();
|
DisplayDriver::HideCursor();
|
||||||
_Unlock();
|
_Unlock();
|
||||||
}
|
}
|
||||||
@ -1222,16 +1315,23 @@ void AccelerantDriver::HideCursor(void)
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::MoveCursorTo(float x, float y)
|
void AccelerantDriver::MoveCursorTo(float x, float y)
|
||||||
{
|
{
|
||||||
/* Need to check for hardware cursor support */
|
/* TODO: Add correct handling of obscured cursors */
|
||||||
_Lock();
|
_Lock();
|
||||||
if(!IsCursorHidden())
|
if ( accMoveCursor )
|
||||||
BlitBitmap(under_cursor,under_cursor->Bounds(),cursorframe, B_OP_COPY);
|
{
|
||||||
|
accMoveCursor((uint16)x,(uint16)y);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(!IsCursorHidden())
|
||||||
|
BlitBitmap(under_cursor,under_cursor->Bounds(),cursorframe, B_OP_COPY);
|
||||||
|
|
||||||
cursorframe.OffsetTo(x,y);
|
cursorframe.OffsetTo(x,y);
|
||||||
ExtractToBitmap(under_cursor,under_cursor->Bounds(),cursorframe);
|
ExtractToBitmap(under_cursor,under_cursor->Bounds(),cursorframe);
|
||||||
|
|
||||||
if(!IsCursorHidden())
|
if(!IsCursorHidden())
|
||||||
BlitBitmap(cursor,cursor->Bounds(),cursorframe, B_OP_OVER);
|
BlitBitmap(cursor,cursor->Bounds(),cursorframe, B_OP_OVER);
|
||||||
|
}
|
||||||
|
|
||||||
_Unlock();
|
_Unlock();
|
||||||
}
|
}
|
||||||
@ -1242,9 +1342,20 @@ void AccelerantDriver::MoveCursorTo(float x, float y)
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::InvertRect(BRect r)
|
void AccelerantDriver::InvertRect(BRect r)
|
||||||
{
|
{
|
||||||
/* Need to check for hardware support for this */
|
|
||||||
_Lock();
|
_Lock();
|
||||||
|
if ( accInvertRect && AcquireEngine && (AcquireEngine(0,0,NULL,&mEngineToken) == B_OK) )
|
||||||
|
{
|
||||||
|
fill_rect_params fillParams;
|
||||||
|
fillParams.right = (uint16)r.right;
|
||||||
|
fillParams.left = (uint16)r.left;
|
||||||
|
fillParams.top = (uint16)r.top;
|
||||||
|
fillParams.bottom = (uint16)r.bottom;
|
||||||
|
accInvertRect(mEngineToken, &fillParams, 1);
|
||||||
|
if ( ReleaseEngine )
|
||||||
|
ReleaseEngine(mEngineToken,NULL);
|
||||||
|
_Unlock();
|
||||||
|
return;
|
||||||
|
}
|
||||||
switch (mDisplayMode.space)
|
switch (mDisplayMode.space)
|
||||||
{
|
{
|
||||||
case B_RGB32_BIG:
|
case B_RGB32_BIG:
|
||||||
@ -1269,7 +1380,7 @@ void AccelerantDriver::InvertRect(BRect r)
|
|||||||
index = (uint32 *)((uint8 *)index+mFrameBufferConfig.bytes_per_row);
|
index = (uint32 *)((uint8 *)index+mFrameBufferConfig.bytes_per_row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case B_RGB16_BIG:
|
case B_RGB16_BIG:
|
||||||
case B_RGB16_LITTLE:
|
case B_RGB16_LITTLE:
|
||||||
{
|
{
|
||||||
@ -1288,7 +1399,7 @@ void AccelerantDriver::InvertRect(BRect r)
|
|||||||
index = (uint16 *)((uint8 *)index+mFrameBufferConfig.bytes_per_row);
|
index = (uint16 *)((uint8 *)index+mFrameBufferConfig.bytes_per_row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case B_RGB15_BIG:
|
case B_RGB15_BIG:
|
||||||
case B_RGBA15_BIG:
|
case B_RGBA15_BIG:
|
||||||
case B_RGB15_LITTLE:
|
case B_RGB15_LITTLE:
|
||||||
@ -1310,7 +1421,7 @@ void AccelerantDriver::InvertRect(BRect r)
|
|||||||
index = (uint16 *)((uint8 *)index+mFrameBufferConfig.bytes_per_row);
|
index = (uint16 *)((uint8 *)index+mFrameBufferConfig.bytes_per_row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case B_CMAP8:
|
case B_CMAP8:
|
||||||
case B_GRAY8:
|
case B_GRAY8:
|
||||||
{
|
{
|
||||||
@ -1329,9 +1440,9 @@ void AccelerantDriver::InvertRect(BRect r)
|
|||||||
index = (uint8 *)index+mFrameBufferConfig.bytes_per_row;
|
index = (uint8 *)index+mFrameBufferConfig.bytes_per_row;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
_Unlock();
|
_Unlock();
|
||||||
}
|
}
|
||||||
@ -1345,10 +1456,14 @@ void AccelerantDriver::InvertRect(BRect r)
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::ShowCursor(void)
|
void AccelerantDriver::ShowCursor(void)
|
||||||
{
|
{
|
||||||
/* Need to check for hardware cursor support */
|
|
||||||
_Lock();
|
_Lock();
|
||||||
if(IsCursorHidden())
|
if(IsCursorHidden())
|
||||||
BlitBitmap(cursor,cursor->Bounds(),cursorframe, B_OP_OVER);
|
{
|
||||||
|
if ( accShowCursor )
|
||||||
|
accShowCursor(true);
|
||||||
|
else
|
||||||
|
BlitBitmap(cursor,cursor->Bounds(),cursorframe, B_OP_OVER);
|
||||||
|
}
|
||||||
DisplayDriver::ShowCursor();
|
DisplayDriver::ShowCursor();
|
||||||
_Unlock();
|
_Unlock();
|
||||||
}
|
}
|
||||||
@ -1362,10 +1477,14 @@ void AccelerantDriver::ShowCursor(void)
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::ObscureCursor(void)
|
void AccelerantDriver::ObscureCursor(void)
|
||||||
{
|
{
|
||||||
/* Need to check for hardware cursor support */
|
|
||||||
_Lock();
|
_Lock();
|
||||||
if (!IsCursorHidden() )
|
if (!IsCursorHidden() )
|
||||||
BlitBitmap(under_cursor,under_cursor->Bounds(),cursorframe, B_OP_COPY);
|
{
|
||||||
|
if ( accShowCursor )
|
||||||
|
accShowCursor(false);
|
||||||
|
else
|
||||||
|
BlitBitmap(under_cursor,under_cursor->Bounds(),cursorframe, B_OP_COPY);
|
||||||
|
}
|
||||||
DisplayDriver::ObscureCursor();
|
DisplayDriver::ObscureCursor();
|
||||||
_Unlock();
|
_Unlock();
|
||||||
}
|
}
|
||||||
@ -1380,32 +1499,52 @@ void AccelerantDriver::ObscureCursor(void)
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::SetCursor(ServerCursor *csr)
|
void AccelerantDriver::SetCursor(ServerCursor *csr)
|
||||||
{
|
{
|
||||||
/* Need to check for hardware cursor support */
|
|
||||||
if(!csr)
|
if(!csr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_Lock();
|
_Lock();
|
||||||
|
if ( accSetCursorShape && (csr->BitsPerPixel() == 1) )
|
||||||
|
{
|
||||||
|
/* TODO: Need to fix transparency */
|
||||||
|
if(cursor)
|
||||||
|
delete cursor;
|
||||||
|
cursor=new ServerCursor(csr);
|
||||||
|
cursorframe.right=cursorframe.left+csr->Bounds().Width();
|
||||||
|
cursorframe.bottom=cursorframe.top+csr->Bounds().Height();
|
||||||
|
uint16 width = (uint16)cursor->Bounds().Width();
|
||||||
|
uint16 height = (uint16)cursor->Bounds().Height();
|
||||||
|
uint16 hot_x = (uint16)cursor->GetHotSpot().x;
|
||||||
|
uint16 hot_y = (uint16)cursor->GetHotSpot().y;
|
||||||
|
uint8 *andMask = new uint8[width*height/8];
|
||||||
|
//uint8 *xorMask = new uint8[width*height/8];
|
||||||
|
memset(andMask,(uint8)255,width*height/8);
|
||||||
|
accSetCursorShape(width,height,hot_x,hot_y,andMask,cursor->Bits());
|
||||||
|
|
||||||
// erase old if visible
|
delete[] andMask;
|
||||||
if(!IsCursorHidden() && under_cursor)
|
//delete[] xorMask;
|
||||||
BlitBitmap(under_cursor,under_cursor->Bounds(),cursorframe, B_OP_COPY);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// erase old if visible
|
||||||
|
if(!IsCursorHidden() && under_cursor)
|
||||||
|
BlitBitmap(under_cursor,under_cursor->Bounds(),cursorframe, B_OP_COPY);
|
||||||
|
|
||||||
if(cursor)
|
if(cursor)
|
||||||
delete cursor;
|
delete cursor;
|
||||||
if(under_cursor)
|
if(under_cursor)
|
||||||
delete under_cursor;
|
delete under_cursor;
|
||||||
|
|
||||||
cursor=new ServerCursor(csr);
|
cursor=new ServerCursor(csr);
|
||||||
under_cursor=new ServerCursor(csr);
|
under_cursor=new ServerCursor(csr);
|
||||||
|
|
||||||
cursorframe.right=cursorframe.left+csr->Bounds().Width();
|
cursorframe.right=cursorframe.left+csr->Bounds().Width();
|
||||||
cursorframe.bottom=cursorframe.top+csr->Bounds().Height();
|
cursorframe.bottom=cursorframe.top+csr->Bounds().Height();
|
||||||
|
|
||||||
ExtractToBitmap(under_cursor,under_cursor->Bounds(),cursorframe);
|
ExtractToBitmap(under_cursor,under_cursor->Bounds(),cursorframe);
|
||||||
|
|
||||||
if(!IsCursorHidden())
|
|
||||||
BlitBitmap(cursor,cursor->Bounds(),cursorframe, B_OP_OVER);
|
|
||||||
|
|
||||||
|
if(!IsCursorHidden())
|
||||||
|
BlitBitmap(cursor,cursor->Bounds(),cursorframe, B_OP_OVER);
|
||||||
|
}
|
||||||
_Unlock();
|
_Unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1897,7 +2036,6 @@ void AccelerantDriver::StrokeTriangle(BPoint *pts, BRect r, LayerData *d, int8 *
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::StrokeLineArray(BPoint *pts, int32 numlines, RGBColor *colors, LayerData *d)
|
void AccelerantDriver::StrokeLineArray(BPoint *pts, int32 numlines, RGBColor *colors, LayerData *d)
|
||||||
{
|
{
|
||||||
/* If this is called from userland, why does it include a layerdata parameter? */
|
|
||||||
_Lock();
|
_Lock();
|
||||||
|
|
||||||
_Unlock();
|
_Unlock();
|
||||||
@ -1912,7 +2050,7 @@ void AccelerantDriver::StrokeLineArray(BPoint *pts, int32 numlines, RGBColor *co
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::SetMode(int32 mode)
|
void AccelerantDriver::SetMode(int32 mode)
|
||||||
{
|
{
|
||||||
/* Still needs some work to fine tune color hassles in picking the mode */
|
/* TODO: Still needs some work to fine tune color hassles in picking the mode */
|
||||||
set_display_mode SetDisplayMode = (set_display_mode)accelerant_hook(B_SET_DISPLAY_MODE, NULL);
|
set_display_mode SetDisplayMode = (set_display_mode)accelerant_hook(B_SET_DISPLAY_MODE, NULL);
|
||||||
int proposed_width, proposed_height, proposed_depth;
|
int proposed_width, proposed_height, proposed_depth;
|
||||||
int i;
|
int i;
|
||||||
@ -1956,6 +2094,7 @@ void AccelerantDriver::SetMode(int32 mode)
|
|||||||
*/
|
*/
|
||||||
bool AccelerantDriver::DumpToFile(const char *path)
|
bool AccelerantDriver::DumpToFile(const char *path)
|
||||||
{
|
{
|
||||||
|
/* TODO: impelement */
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2311,6 +2450,7 @@ void AccelerantDriver::SetThickPixel(int x, int y, int thick, PatternHandler *pa
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::HLine(int32 x1, int32 x2, int32 y, PatternHandler *pat)
|
void AccelerantDriver::HLine(int32 x1, int32 x2, int32 y, PatternHandler *pat)
|
||||||
{
|
{
|
||||||
|
/* TODO: Add hardware acceleration */
|
||||||
int x;
|
int x;
|
||||||
if ( x1 > x2 )
|
if ( x1 > x2 )
|
||||||
{
|
{
|
||||||
@ -2366,6 +2506,7 @@ void AccelerantDriver::HLine(int32 x1, int32 x2, int32 y, PatternHandler *pat)
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::HLineThick(int32 x1, int32 x2, int32 y, int32 thick, PatternHandler *pat)
|
void AccelerantDriver::HLineThick(int32 x1, int32 x2, int32 y, int32 thick, PatternHandler *pat)
|
||||||
{
|
{
|
||||||
|
/* TODO: Add hardware acceleration */
|
||||||
int x, y1, y2;
|
int x, y1, y2;
|
||||||
|
|
||||||
if ( x1 > x2 )
|
if ( x1 > x2 )
|
||||||
@ -2442,7 +2583,7 @@ void AccelerantDriver::HLineThick(int32 x1, int32 x2, int32 y, int32 thick, Patt
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::BlitBitmap(ServerBitmap *sourcebmp, BRect sourcerect, BRect destrect, drawing_mode mode=B_OP_COPY)
|
void AccelerantDriver::BlitBitmap(ServerBitmap *sourcebmp, BRect sourcerect, BRect destrect, drawing_mode mode=B_OP_COPY)
|
||||||
{
|
{
|
||||||
/* Need to check for hardware support for this. */
|
/* TODO: Need to check for hardware support for this. */
|
||||||
if(!sourcebmp)
|
if(!sourcebmp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -2571,7 +2712,7 @@ void AccelerantDriver::BlitBitmap(ServerBitmap *sourcebmp, BRect sourcerect, BRe
|
|||||||
*/
|
*/
|
||||||
void AccelerantDriver::ExtractToBitmap(ServerBitmap *destbmp, BRect destrect, BRect sourcerect)
|
void AccelerantDriver::ExtractToBitmap(ServerBitmap *destbmp, BRect destrect, BRect sourcerect)
|
||||||
{
|
{
|
||||||
/* Need to check for hardware support for this. */
|
/* TODO: Need to check for hardware support for this. */
|
||||||
if(!destbmp)
|
if(!destbmp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -130,6 +130,14 @@ protected:
|
|||||||
int card_fd;
|
int card_fd;
|
||||||
image_id accelerant_image;
|
image_id accelerant_image;
|
||||||
GetAccelerantHook accelerant_hook;
|
GetAccelerantHook accelerant_hook;
|
||||||
|
engine_token *mEngineToken;
|
||||||
|
acquire_engine AcquireEngine;
|
||||||
|
release_engine ReleaseEngine;
|
||||||
|
fill_rectangle accFillRect;
|
||||||
|
invert_rectangle accInvertRect;
|
||||||
|
set_cursor_shape accSetCursorShape;
|
||||||
|
move_cursor accMoveCursor;
|
||||||
|
show_cursor accShowCursor;
|
||||||
frame_buffer_config mFrameBufferConfig;
|
frame_buffer_config mFrameBufferConfig;
|
||||||
int mode_count;
|
int mode_count;
|
||||||
display_mode *mode_list;
|
display_mode *mode_list;
|
||||||
|
Loading…
Reference in New Issue
Block a user