Class hierarchy   Compound list   File list   Compound Members   File Members  

Drawable Class Reference

This class is a base for all objects that are inherently bitmaps, (Currently: Screen & Bitmap) It contains methods that allow manipulating the object: - Drawing - Buffer access - Copying and more. More...

Inherits Interface.

Inherited by Screen and Texture.

List of all members.

Public Members

Related Functions

(Note that these are not member functions.)

Detailed Description

This class is a base for all objects that are inherently bitmaps, (Currently: Screen & Bitmap) It contains methods that allow manipulating the object: - Drawing - Buffer access - Copying and more.


Member Function Documentation

virtual int Drawable::getWidth() const = 0 [pure virtual]

Returns the width of the drawable.

virtual int Drawable::getHeight() const = 0 [pure virtual]

Returns the height of the drawable.

virtual long Drawable::status() const = 0 [pure virtual]

Returns a non-zero value if an error occurred.

virtual int Drawable::getNoAccel() const = 0 [pure virtual]

Returns non-zero if hareware acceleration is disabled for this Drawable.

Return value of 0 does not assure hardware acceleration.

virtual long Drawable::clear(TColor Color=0) = 0 [pure virtual]

Fill the entire drawable with a specified color.

virtual long Drawable::copy(Drawable* Source, int x, int y, int x1=-1, int y1=-1, int x2=-1, int y2=-1, int Transparent=-1) = 0 [pure virtual]

Copies (Blits) a rectangle from the source to this drawable.

Both must be unlocked. x,y are the destination coordinates. x1,y1,x2,y2 is the source rectangle, defaulting to the entire area. Transparent: (-1 use drawable transparency, 0 no transparency, 1 force transparency. Returns >0 if copy was clipped out.

virtual long Drawable::rawCopy(Drawable* Source, int x, int y, int x1=-1, int y1=-1, int x2=-1, int y2=-1, int Transparent=-1) = 0 [pure virtual]

This does the same as copy, but it doesn't clip the blit.

This can be used for optimization if the application does clipping.

virtual long Drawable::rawCopy(const Rect2D& destRect, Drawable* Source, const Rect2D& srcRect, int Transparent) = 0 [pure virtual]

Copies an arbitrary src rect to an arbitrary dest rect, stretching as necessary.

If a rect is properly empty (br.x < tl.x || br.y < tl.y), then the entire source or dest dimensions are used.

virtual long Drawable::scaleCopy(Drawable* Source, const Rect2D& Section=Rect2D()) = 0 [pure virtual]

Copies the a section of the source, scaling it to fit current drawable dimensions.

The default section takes the entire sources.

virtual long Drawable::flipHorizontal(Drawable* Source) = 0 [pure virtual]

Copies the image from the source, flipping it horizontally.

virtual long Drawable::flipVertical(Drawable* Source) = 0 [pure virtual]

Copies the image from the source, flipping it vertically.

virtual long Drawable::rotate(Drawable* Source, int Degrees) = 0 [pure virtual]

Copies the image from the source, rotating it around its center pixels that cannot be obtained due to being out of the image, will be filled with the source current transparent color.

virtual void* Drawable::getDDrawSurface() = 0 [pure virtual]

Return the internal surface for creating special effects.

Care must be taken to return the surface to its original state (locks) to prevent internal inconsistencies. Return type should be cast to: LPDIRECTDRAWSURFACE4

virtual int Drawable::isLocked() const = 0 [pure virtual]

Returns a non-zero value if the Drawable is locked.

virtual long Drawable::lock(int Optimize=1, int WriteOnly=0) = 0 [pure virtual]

Use Optimize=1 if you will do more than a few drawings.

This will pre-calculate offsets in the buffer. If only a few single pixels are accessed, it is preferred not to use optimize.

virtual long Drawable::unlock() = 0 [pure virtual]

Unlocks the Drawable.

Must be done to enable other access to the object

virtual long Drawable::drawHLine(int y, int x1, int x2, TColor color) = 0 [pure virtual]

Draw a horizontal line at y, from x1 to x2.

virtual long Drawable::drawVLine(int x, int y1, int y2, TColor color) = 0 [pure virtual]

Draw a vertical line at x, from y1 to y2.

virtual long Drawable::drawLine(int x1, int y1, int x2, int y2, TColor color) = 0 [pure virtual]

Draw any line.

virtual long Drawable::setClipArea(int x1, int y1, int x2, int y2) = 0 [pure virtual]

Set an area outside of which nothing can be drawn.

virtual long Drawable::getClipArea(int& x1, int& y1, int& x2, int& y2) const = 0 [pure virtual]

Get the current Clip Area.

virtual long Drawable::isInClipArea(int x, int y) const = 0 [pure virtual]

Check if a point is within the clipping area.

virtual TColor* Drawable::getBuffer() const = 0 [pure virtual]

Returns a pointer to the beginning of the buffer.

Returns NULL for all errors

virtual int Drawable::getPitch() const = 0 [pure virtual]

Returns the size of a line in bytes.

This includes pixel data and some extra information Only the pixel data should be modified For more information, refer to the manual.

virtual TColor* Drawable::getLine(int y) const = 0 [pure virtual]

Returns a pointer to the beginning of a certain line Returns NULL for all errors.

virtual long Drawable::beginDraw() = 0 [pure virtual]

Locks the buffer and creates a GDI device context.

endDraw must be called after all operations are done.

virtual long Drawable::endDraw() = 0 [pure virtual]

Unlocks the buffer and releases the GDI device context.

virtual void* Drawable::getDeviceContext() = 0 [pure virtual]

Returns the device context.

Return value should be cast to HDC

virtual long Drawable::setPixel(int x, int y, int Red, int Green, int Blue) = 0 [pure virtual]

Sets a single pixel to the specified color.

virtual long Drawable::setPixel(int x, int y, long Color) = 0 [pure virtual]

Sets a single pixel to the specified color.

virtual long Drawable::getPixel(int x, int y) const = 0 [pure virtual]

Gets the color value of the pixel.

virtual long Drawable::ellipse(int x1, int y1, int x2, int y2) = 0 [pure virtual]

Draws an ellipse that is bounded by the specified rectangle.

virtual long Drawable::line(int x1, int y1, int x2, int y2) = 0 [pure virtual]

Draw a generic line.

virtual long Drawable::setColor(int Red, int Green, int Blue) = 0 [pure virtual]

Set the current drawing color.

virtual long Drawable::setBKColor(int Red, int Green, int Blue) = 0 [pure virtual]

Set the current background color.

virtual long Drawable::printXY(int x, int y, int Color, const char* str) = 0 [pure virtual]

Print text.

virtual long Drawable::getTextWidth() = 0 [pure virtual]

Returns the width of a character.

Assumes default monospace font

virtual long Drawable::getTextHeight() = 0 [pure virtual]

Returns the height of a character.

Assumes default monospace font

virtual long Drawable::fillRect(int x1, int y1, int x2, int y2) = 0 [pure virtual]

Draws a filled rectangle.

virtual long Drawable::loadRaw(istream& is, int TopToBottom=1, int Pad32=0) = 0 [pure virtual]

Loads data into the Drawable from a 24 bit raw data stream.

TopToBottom indicates if image is y inverted. Pad32 indicates that each row is padded to 32 bit bounday. (BMP style)

virtual long Drawable::loadRaw(void* Buffer, ulong Length, int TopToBottom=1, int Pad32=0) = 0 [pure virtual]

Loads data into the Drawable from a 24 bit raw data memory buffer.

TopToBottom indicates if image is y inverted. Pad32 indicates that each row is padded to 32 bit bounday. (BMP style)

virtual long Drawable::save(ostream& os, int BMP=1) = 0 [pure virtual]

Saves the drawable as a bitmap to a stream.

If BMP is zero this includes a header consisting of: Width (4 bytes) Height (4 Bytes) Bits Per Pixel (4 Bytes) and raw 24 bit data If BMP is not 0, the output is a windows BMP file.

virtual int Drawable::getTransparency() const = 0 [pure virtual]

Returns a non-zero value if this drawable has a transparent color (for copy ops).

virtual long Drawable::setTransparency(int Transparency) = 0 [pure virtual]

Set transparency mode.

Still requiring setting a transparent color.

virtual long Drawable::setTransparentColor(TColor Color) = 0 [pure virtual]

Sets the color which will be transparent in copies.

(Default: 1)

virtual TColor Drawable::getTransparentColor() const = 0 [pure virtual]

Gets the color which will be transparent in copies.

virtual TColor Drawable::getColor(int Red, int Green, int Blue) const = 0 [pure virtual]

Convert 24 bit color components into 16 bit.

virtual TColor Drawable::getColor(long Color) const = 0 [pure virtual]

Convert 24 bit color into 16 bit.

virtual long Drawable::getRGBColor(TColor Color) const = 0 [pure virtual]

Convert 16 bit color into 24 bit.

DLLExport Bitmap* newBitmap(int Width, int Height, int NoAccel=0)

Creates a new bitmap with the specified size.

DLLExport Bitmap* newBitmap(Bitmap* BM)

Creates a copy of the given bitmap.

DLLExport Bitmap* newBitmap(istream& is, int Width, int Height, int NoAccel=0)

Creates a bitmap and loads it from the input stream.

DLLExport Bitmap* newBitmap(istream& is, int NoAccel=0)

Creates a bitmap and loads it from the input stream.

DLLExport Bitmap* loadBMP(const char* Filename)

Creates a bitmap and loads it from a *.BMP file.


The documentation for this class was generated from the following files: