Renderers


Include

#include <render.h>

Project Location

src/displaylib
src/vidlib
...

Library

display
cdisplay/displayservice
video

Required Libraries

image

Defines

Routines

int InitDisplay (void);

// does not HAVE to be called but may Called to register the class, under Windows, this registers the class so that it may be used within a windows dialog as a User Control type. It returns TRUE on success and FALSE on failure. There is no further information. There is some logging associated with this event which may detail the events.

void SetApplicationTitle (const char *title );

On Windows, this sets the title of the container window within which all other displays are created. There is an invisible parent container which prevents things like 10 application windows (alt-tab-able) that are really the same application.

void SetApplicationIcon (Image Icon); //

The Icon associated with the Windows container window. (HICON hIcon not Image) Some systems however take a Image for this (Linux/SDL/X).

void GetDisplaySize ( uint32_t *width, uint32_t *height );

Gets the current dimension of the primary desktop that the application is currently associated with.

void SetDisplaySize ( uint32_t width, uint32_t height );

Windows support for modifying the current display width and height. It also attempts to put the display into 32 bit mode.

int ProcessDisplayMessages (void);

Once upon a time in a library primitive... This is called to get any system events and process them. This is done by a thread now, and should since these messages should only be processed by that thread, if the main-line thread executes it, it merely returns. If for some odd chance you are the video thread and you call this, it will result in 0 if no message processed, 1 if 1 or more events were handled, and -1 if the rendering subsystem has closed. (Registered as an IdleProc now, please call Idle() instead ).

PRENDERER OpenDisplaySizedAt ( uint32_t attributes, uint32_t width, uint32_t height, int32_t x, int32_t y );

Returns a rendering surface with the specified attributes (none?), width, height (if 0 or less?, 256 default), and position (if -1, use system default?).

PRENDERER OpenDisplayAboveSizedAt ( uint32_t attributes, uint32_t width, uint32_t height, int32_t x, int32_t y, PRENDERER above );

This opens a display which is related as a child of another renderer. This has the advantage of zorder input lock.

void CloseDisplay ( PRENDERER );

Closes a rendering surface which was opened....

void UpdateDisplayPortionEx ( PRENDERER, int32_t x, int32_t y, uint32_t width, uint32_t height DBG_PASS );

Drawing operations done to the Image returned from GetDisplaySurface() are not updated to the display until they are instructed to be such. There are certain system events which will cause this image to be displayed before an update is called... If 0 is passed for x, y, width, and height, the entire display is updated.

void UpdateDisplay ( PRENDERER );

Updates the current image to the display... (actually called UpdateDisplayPortion(0,0,0,0))

void ClearDisplay ( PRENDERER ); // ClearTo(0), Update

Erases the image of the display and updates to the physical display. Erased color is AColor(0,0,0,255).

void GetDisplayPosition ( PRENDERER, int32_t *x, int32_t *y, uint32_t *width, uint32_t *height );

Return the current width, height, and position of a renderer. If parameters passed are NULL, then that information obviously cannot be returned.

void MoveDisplay ( PRENDERER, int32_t x, int32_t y );

Move the display to the specified coordiates. (upper left corner of display to position)

void MoveDisplayRel ( PRENDERER, int32_t delx, int32_t dely );

Move the display a bit

void SizeDisplay ( PRENDERER, uint32_t w, uint32_t h );

void SizeDisplayRel ( PRENDERER, int32_t delw, int32_t delh );

void MoveSizeDisplayRel ( PRENDERER hVideo, int32_t delx, int32_t dely, int32_t delw, int32_t delh );

void PutDisplayAbove ( PRENDERER, PRENDERER ); // this that - put this above that

Image GetDisplayImage ( PRENDERER );

void SetCloseHandler ( PRENDERER, CloseCallback, PTRSZVAL );

void SetMouseHandler ( PRENDERER, MouseCallback, PTRSZVAL );

void SetRedrawHandler ( PRENDERER, RedrawCallback, PTRSZVAL );

void SetKeyboardHandler ( PRENDERER, KeyProc, PTRSZVAL );

void SetLoseFocusHandler ( PRENDERER, LoseFocusCallback, PTRSZVAL );

void SetDefaultHandler ( PRENDERER, GeneralCallback, PTRSZVAL );

void GetMousePosition ( int32_t *x, int32_t *y );

void SetMousePosition ( PRENDERER, int32_t x, int32_t y );

LOGICAL HasFocus ( PRENDERER );

int SendActiveMessage ( PRENDERER dest, PACTIVEMESSAGE msg );

PACTIVEMESSAGE CreateActiveMessage ( int ID, int size, ... );

char GetKeyText ( int key );

uint32_t IsKeyDown ( PRENDERER display, int key );

uint32_t KeyDown ( PRENDERER display, int key );

LOGICAL DisplayIsValid ( PRENDERER display );

// own==0 release else mouse owned.

void OwnMouseEx ( PRENDERER display, uint32_t Own DBG_PASS);

int BeginCalibration ( int points );

void SyncRender ( void );

int EnableOpenGL ( PRENDERER hVideo );

int SetActiveGLDisplay ( PRENDERER hDisplay );

//IsKeyDown

//KeyDown

//KeyDouble

//GetKeyText

void MoveSizeDisplay ( PRENDERER hVideo, int32_t x, int32_t y, int32_t w, int32_t h );

void MakeTopmost ( PRENDERER hVideo );

void HideDisplay ( PRENDERER hVideo );

void RestoreDisplay ( PRENDERER hVideo );