ScummVM API documentation
Bolt::XpLib Class Reference

Public Member Functions

 XpLib (BoltEngine *bolt)
 
bool initialize ()
 
void terminate ()
 
void blit (byte *src, uint16 srcStride, byte *dst, uint16 dstStride, uint16 width, uint16 height)
 
void maskBlit (byte *src, uint16 srcStride, byte *dst, uint16 dstStride, uint16 width, uint16 height)
 
void getPalette (int16 startIndex, int16 count, byte *destBuf)
 
void setPalette (int16 count, int16 startIndex, byte *srcBuf)
 
bool startCycle (XPCycleState *specs)
 
void cycleColors ()
 
void stopCycle ()
 
void setScreenBrightness (uint8 percent)
 
bool readCursor (uint16 *outButtons, int16 *outX, int16 *outY)
 
void setCursorPos (int16 x, int16 y)
 
void setCursorImage (byte *bitmap, int16 hotspotX, int16 hotspotY)
 
void setCursorColor (byte r, byte g, byte b)
 
bool showCursor ()
 
void hideCursor ()
 
void updateCursorPosition ()
 
int16 getEvent (int16 filter, uint32 *outData, byte **outPtrData=nullptr)
 
int16 peekEvent (int16 filter, uint32 *outData, byte **outPtrData=nullptr)
 
void postEvent (XPEventTypes type, uint32 data, byte *ptrData=nullptr)
 
int16 setInactivityTimer (int16 seconds)
 
int16 setScreenSaverTimer (int16 seconds)
 
bool enableController ()
 
void disableController ()
 
bool setDisplaySpec (int *outMode, DisplaySpecs *spec)
 
void setCoordSpec (int16 x, int16 y, int16 width, int16 height)
 
void displayPic (XPPicDesc *pic, int16 x, int16 y, int16 page)
 
void setFrameRate (int16 fps)
 
void updateDisplay ()
 
void setTransparency (bool toggle)
 
void fillDisplay (byte color, int16 page)
 
int16 getRandom (int16 range)
 
void randomize ()
 
Common::FileopenFile (const char *fileName, int16 flags)
 
void closeFile (Common::File *handle)
 
bool readFile (Common::File *handle, void *buffer, uint32 *size)
 
bool setFilePos (Common::File *handle, int32 offset, int32 origin)
 
void * allocMem (uint32 size)
 
void * tryAllocMem (uint32 size)
 
void freeMem (void *mem)
 
bool playSound (byte *data, uint32 size, int16 sampleRate)
 
bool pauseSound ()
 
bool resumeSound ()
 
bool stopSound ()
 
uint32 startTimer (int16 delay)
 
void updateTimers ()
 
bool killTimer (uint32 timerId)
 

Protected Member Functions

void dirtyBlit (byte *src, byte *dst, uint16 width, uint16 height, byte *dirtyFlags)
 
void compositeBlit (byte *src, byte *background, byte *dst, uint16 stride, uint16 width, uint16 height)
 
void rleBlit (byte *src, uint16 srcStride, byte *dst, uint16 dstStride, uint16 width, uint16 height)
 
void rleMaskBlit (byte *src, uint16 srcStride, byte *dst, uint16 dstStride, uint16 width, uint16 height)
 
void rleCompositeBlit (byte *rle, byte *background, byte *dst, uint16 width, uint16 height, byte *dirtyFlags)
 
uint16 rleDataSize (byte *rleData, uint16 height)
 
void markCursorPixels (byte *buffer, uint32 count)
 
bool initCursor ()
 
void shutdownCursor ()
 
void readJoystick (int16 *outX, int16 *outY)
 
bool initEvents ()
 
void shutdownEvents ()
 
void unlinkEvent (XPEvent *node)
 
void enqueueEvent (XPEvent *node)
 
void pumpMessages ()
 
void handleTimer (uint32 timerId)
 
void handleMouseMove (bool *mouseMoved)
 
void handleMouseButton (int16 down, int16 button)
 
void handleKey (Common::KeyCode vkey, int16 down)
 
void postJoystickEvent (int16 source, int16 dx, int16 dy)
 
bool canDropEvent (int16 type)
 
void activateScreenSaver ()
 
void resetInactivity ()
 
void enableMouse ()
 
void disableMouse ()
 
int16 getButtonState ()
 
bool initDisplay ()
 
void shutdownDisplay ()
 
bool createSurface (XPSurface *surf)
 
void freeSurface (XPSurface *surf)
 
void virtualToScreen (int16 *x, int16 *y)
 
void screenToVirtual (int16 *x, int16 *y)
 
void dispatchBlit (int16 mode, byte *src, uint16 srcStride, byte *dst, uint16 dstStride, uint16 width, uint16 height)
 
bool clipAndBlit (XPPicDesc *src, XPPicDesc *dest, int16 x, int16 y, Common::Rect *outClip)
 
void addDirtyRect (Common::Rect *rect)
 
void waitForFrameRate ()
 
void handlePaletteTransitions ()
 
void flushPalette ()
 
void overlayComposite ()
 
void compositeToScreen ()
 
void mergeDirtyRects ()
 
void blitDirtyRects (Common::Rect *rects, int16 count)
 
void compositeDirtyRects (Common::Rect *rects, int16 count)
 
void applyCursorPalette ()
 
void prepareBackSurface ()
 
void fileError (const char *message)
 
bool pollSound (byte **outData)
 
bool initSound ()
 
void shutdownSound ()
 
bool initTimer ()
 
void shutdownTimer ()
 

Protected Attributes

BoltEngine_bolt = nullptr
 
bool _xpInitialized = false
 
XPCycleState _cycleStates [4]
 
byte _paletteBuffer [3 *256]
 
byte _shiftedPaletteBuffer [3 *256]
 
byte _cycleTempPalette [3 *20]
 
uint32 _cycleTimerIds [4]
 
int16 _brightnessShift = 0
 
byte _cursorBuffer [16 *16]
 
int16 _cursorHotspotX = 0
 
int16 _cursorHotspotY = 0
 
int16 _lastCursorX = 0
 
int16 _lastCursorY = 0
 
int16 _cursorViewportWidth = 0
 
int16 _cursorViewportHeight = 0
 
int16 _cursorHidden = 1
 
XPEvent _events [40]
 
int8 _keyStateLeft = 0
 
int8 _keyStateRight = 0
 
int8 _keyStateUp = 0
 
int8 _keyStateDown = 0
 
int16 _lastJoystickX = 0
 
int16 _lastJoystickY = 0
 
int16 _mouseButtonPrev = 0
 
int16 _mouseButtonState = 0
 
int16 _eventMouseMoved = 0
 
int16 _eventKeyStates = 0
 
uint32 _inactivityDeadline = 0
 
XPEvent_eventQueueHead = nullptr
 
XPEvent_eventQueueTail = nullptr
 
XPEvent_eventFreeList = nullptr
 
uint32 _lastMouseEventData = 0
 
Common::Point _lastRegisteredMousePos
 
XPSurface _surfaces [2]
 
int16 _virtualWidth = 0
 
int16 _virtualHeight = 0
 
int16 _currentDisplayPage = 0
 
int16 _prevRenderFlags = 0
 
int16 _renderFlags = 0
 
int16 _frameRateFPS = 0
 
int16 _overlayCount = 0
 
int16 _prevDirtyCount = 0
 
int16 _prevDirtyValid = 0
 
int16 _surfaceWidth = 0
 
int16 _surfaceHeight = 0
 
int16 _viewportOffsetX = 0
 
int16 _viewportOffsetY = 0
 
uint32 _nextFrameTime = 0
 
Common::Rect _dirtyRects [30]
 
Common::Rect _prevDirtyRects [30]
 
Common::Rect _cursorRect
 
Common::Rect _prevCursorRect
 
Common::Rect _overlayCursorRect
 
Common::Rect _prevOverlayCursorRect
 
byte * _vgaFramebuffer = nullptr
 
byte * _rowDirtyFlags = nullptr
 
byte _cursorBackgroundSaveBuffer [16 *16]
 
XPPicDesc _cursorBackgroundSave
 
XPPicDesc _cursorSprite
 
Audio::QueuingAudioStream_audioStream = nullptr
 
Audio::SoundHandle _soundHandle
 
Common::Queue< uint32 > _durationQueue
 
uint32 _nextSoundDeadlineMs = 0
 
uint32 _pauseTimeMs = 0
 
int16 _sndPlayState = 0
 
int16 _sndQueued = 0
 
int _sndCompletedCount = 0
 
bool _sndPaused = false
 
int16 _sndSampleRate = 22050
 
uint32 _sndNextDeadline = 0
 
uint32 _sndBufferQueueTime = 0
 
Common::Queue< byte * > _bufferSourceQueue
 
uint32 _inactivityTimerId = 0
 
int16 _inactivityCountdown = 0
 
int16 _inactivityTimerValue = 0
 
int16 _screensaverCountdown = 0
 
int16 _screenSaverTimerValue = 0
 
int16 _inactivityTimeout = 0
 
bool _timerInitialized = false
 
XPTimer _timers [128]
 
uint16 _nextTimerId = 0
 

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