Browse Source

Code refactoring: passing geometry to XPixelBuffer as a Rect instead of four

int values.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2574 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v0.0.90
Constantin Kaplinsky 16 years ago
parent
commit
f773a8e2db

+ 7
- 11
unix/x0vncserver/XPixelBuffer.cxx View File

@@ -28,18 +28,14 @@
using namespace rfb;

XPixelBuffer::XPixelBuffer(Display *dpy, ImageFactory &factory,
int offsetLeft, int offsetTop,
int width, int height,
ColourMap* cm)
const Rect &rect, ColourMap* cm)
: FullFramePixelBuffer(),
m_dpy(dpy),
m_image(0),
m_offsetLeft(offsetLeft),
m_offsetTop(offsetTop),
m_image(factory.newImage(dpy, rect.width(), rect.height())),
m_offsetLeft(rect.tl.x),
m_offsetTop(rect.tl.y),
m_stride(0)
{
m_image = factory.newImage(dpy, width, height);

// Fill in the PixelFormat structure of the parent class.
format.bpp = m_image->xim->bits_per_pixel;
format.depth = m_image->xim->depth;
@@ -53,13 +49,13 @@ XPixelBuffer::XPixelBuffer(Display *dpy, ImageFactory &factory,
format.blueMax = m_image->xim->blue_mask >> format.blueShift;

// Set up the remaining data of the parent class.
width_ = width;
height_ = height;
width_ = rect.width();
height_ = rect.height();
data = (rdr::U8 *)m_image->xim->data;
colourmap = cm;

// Calculate the distance in pixels between two subsequent scan
// lines of the framebuffer.
// lines of the framebuffer. This may differ from image width.
m_stride = m_image->xim->bytes_per_line * 8 / m_image->xim->bits_per_pixel;

// Get initial screen image from the X display.

+ 1
- 3
unix/x0vncserver/XPixelBuffer.h View File

@@ -36,9 +36,7 @@ class XPixelBuffer : public FullFramePixelBuffer
{
public:
XPixelBuffer(Display *dpy, ImageFactory &factory,
int offsetLeft, int offsetTop,
int width, int height,
ColourMap* cm);
const Rect &rect, ColourMap* cm);
virtual ~XPixelBuffer();

// We allow public access to the underlying Image object.

+ 1
- 4
unix/x0vncserver/x0vncserver.cxx View File

@@ -180,10 +180,7 @@ public:

// Provide pixel buffer to the server object.
// FIXME: Pass coordinates in a structure?
pb = new XPixelBuffer(dpy, factory,
geometry->offsetLeft(), geometry->offsetTop(),
geometry->width(), geometry->height(),
this);
pb = new XPixelBuffer(dpy, factory, geometry->getRect(), this);
vlog.info("Allocated %s", pb->getImage()->classDesc());

server = vs;

Loading…
Cancel
Save