made room for a new meaning of BitmapBuffer, it will be used for a RenderingBuffer class that wraps arround a ServerBitmap. BBitmapBuffer on the other side is handy as well and wraps arround a BBitmap, as BitmapBuffer did before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13297 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -24,6 +24,7 @@ if ( $(TARGET_PLATFORM) = haiku ) {
|
|||||||
VIEW_DRIVER_SOURCES =
|
VIEW_DRIVER_SOURCES =
|
||||||
AccelerantBuffer.cpp
|
AccelerantBuffer.cpp
|
||||||
AccelerantHWInterface.cpp
|
AccelerantHWInterface.cpp
|
||||||
|
BitmapBuffer.cpp
|
||||||
DisplayDriverPainter.cpp
|
DisplayDriverPainter.cpp
|
||||||
HWInterface.cpp
|
HWInterface.cpp
|
||||||
MallocBuffer.cpp
|
MallocBuffer.cpp
|
||||||
@@ -32,6 +33,7 @@ if ( $(TARGET_PLATFORM) = haiku ) {
|
|||||||
} else {
|
} else {
|
||||||
VIEW_DRIVER_SOURCES =
|
VIEW_DRIVER_SOURCES =
|
||||||
fake_input_server.cpp
|
fake_input_server.cpp
|
||||||
|
BBitmapBuffer.cpp
|
||||||
BitmapBuffer.cpp
|
BitmapBuffer.cpp
|
||||||
AccelerantBuffer.cpp
|
AccelerantBuffer.cpp
|
||||||
AccelerantHWInterface.cpp
|
AccelerantHWInterface.cpp
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
// BBitmapBuffer.h
|
||||||
|
|
||||||
|
#include <Bitmap.h>
|
||||||
|
|
||||||
|
#include "BBitmapBuffer.h"
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
BBitmapBuffer::BBitmapBuffer(BBitmap* bitmap)
|
||||||
|
: fBitmap(bitmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// destructor
|
||||||
|
BBitmapBuffer::~BBitmapBuffer()
|
||||||
|
{
|
||||||
|
delete fBitmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
// InitCheck
|
||||||
|
status_t
|
||||||
|
BBitmapBuffer::InitCheck() const
|
||||||
|
{
|
||||||
|
status_t ret = B_NO_INIT;
|
||||||
|
if (fBitmap)
|
||||||
|
ret = fBitmap->InitCheck();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ColorSpace
|
||||||
|
color_space
|
||||||
|
BBitmapBuffer::ColorSpace() const
|
||||||
|
{
|
||||||
|
if (InitCheck() >= B_OK)
|
||||||
|
return fBitmap->ColorSpace();
|
||||||
|
return B_NO_COLOR_SPACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bits
|
||||||
|
void*
|
||||||
|
BBitmapBuffer::Bits() const
|
||||||
|
{
|
||||||
|
if (InitCheck() >= B_OK)
|
||||||
|
return fBitmap->Bits();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BytesPerRow
|
||||||
|
uint32
|
||||||
|
BBitmapBuffer::BytesPerRow() const
|
||||||
|
{
|
||||||
|
if (InitCheck() >= B_OK)
|
||||||
|
return fBitmap->BytesPerRow();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Width
|
||||||
|
uint32
|
||||||
|
BBitmapBuffer::Width() const
|
||||||
|
{
|
||||||
|
if (InitCheck() >= B_OK)
|
||||||
|
return fBitmap->Bounds().IntegerWidth() + 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Height
|
||||||
|
uint32
|
||||||
|
BBitmapBuffer::Height() const
|
||||||
|
{
|
||||||
|
if (InitCheck() >= B_OK)
|
||||||
|
return fBitmap->Bounds().IntegerHeight() + 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
// BBitmapBuffer.h
|
||||||
|
|
||||||
|
#ifndef B_BITMAP_BUFFER_H
|
||||||
|
#define B_BITMAP_BUFFER_H
|
||||||
|
|
||||||
|
#include "RenderingBuffer.h"
|
||||||
|
|
||||||
|
class BBitmap;
|
||||||
|
|
||||||
|
class BBitmapBuffer : public RenderingBuffer {
|
||||||
|
public:
|
||||||
|
BBitmapBuffer(BBitmap* bitmap);
|
||||||
|
virtual ~BBitmapBuffer();
|
||||||
|
|
||||||
|
virtual status_t InitCheck() const;
|
||||||
|
|
||||||
|
virtual color_space ColorSpace() const;
|
||||||
|
virtual void* Bits() const;
|
||||||
|
virtual uint32 BytesPerRow() const;
|
||||||
|
virtual uint32 Width() const;
|
||||||
|
virtual uint32 Height() const;
|
||||||
|
|
||||||
|
// BBitmapBuffer
|
||||||
|
const BBitmap* Bitmap() const
|
||||||
|
{ return fBitmap; }
|
||||||
|
private:
|
||||||
|
|
||||||
|
BBitmap* fBitmap;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // B_BITMAP_BUFFER_H
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
#include "fake_input_server.h"
|
#include "fake_input_server.h"
|
||||||
|
|
||||||
#include "BitmapBuffer.h"
|
#include "BBitmapBuffer.h"
|
||||||
#include "PortLink.h"
|
#include "PortLink.h"
|
||||||
#include "ServerConfig.h"
|
#include "ServerConfig.h"
|
||||||
#include "ServerCursor.h"
|
#include "ServerCursor.h"
|
||||||
@@ -472,7 +472,7 @@ ViewHWInterface::SetMode(const display_mode &mode)
|
|||||||
doubleBuffered = true;
|
doubleBuffered = true;
|
||||||
|
|
||||||
BBitmap* frontBitmap = new BBitmap(frame, 0, (color_space)fDisplayMode.space);
|
BBitmap* frontBitmap = new BBitmap(frame, 0, (color_space)fDisplayMode.space);
|
||||||
fFrontBuffer = new BitmapBuffer(frontBitmap);
|
fFrontBuffer = new BBitmapBuffer(frontBitmap);
|
||||||
|
|
||||||
status_t err = fFrontBuffer->InitCheck();
|
status_t err = fFrontBuffer->InitCheck();
|
||||||
if (err < B_OK) {
|
if (err < B_OK) {
|
||||||
@@ -486,7 +486,7 @@ ViewHWInterface::SetMode(const display_mode &mode)
|
|||||||
// since we override IsDoubleBuffered(), the drawing buffer
|
// since we override IsDoubleBuffered(), the drawing buffer
|
||||||
// is in effect also always B_RGBA32.
|
// is in effect also always B_RGBA32.
|
||||||
BBitmap* backBitmap = new BBitmap(frame, 0, B_RGBA32);
|
BBitmap* backBitmap = new BBitmap(frame, 0, B_RGBA32);
|
||||||
fBackBuffer = new BitmapBuffer(backBitmap);
|
fBackBuffer = new BBitmapBuffer(backBitmap);
|
||||||
|
|
||||||
err = fBackBuffer->InitCheck();
|
err = fBackBuffer->InitCheck();
|
||||||
if (err < B_OK) {
|
if (err < B_OK) {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
#include "HWInterface.h"
|
#include "HWInterface.h"
|
||||||
|
|
||||||
class BBitmap;
|
class BBitmap;
|
||||||
class BitmapBuffer;
|
class BBitmapBuffer;
|
||||||
class CardWindow;
|
class CardWindow;
|
||||||
class UpdateQueue;
|
class UpdateQueue;
|
||||||
|
|
||||||
@@ -57,8 +57,8 @@ class ViewHWInterface : public HWInterface {
|
|||||||
virtual status_t Invalidate(const BRect& frame);
|
virtual status_t Invalidate(const BRect& frame);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BitmapBuffer* fBackBuffer;
|
BBitmapBuffer* fBackBuffer;
|
||||||
BitmapBuffer* fFrontBuffer;
|
BBitmapBuffer* fFrontBuffer;
|
||||||
|
|
||||||
CardWindow* fWindow;
|
CardWindow* fWindow;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user