ScummVM API documentation
Kyra::Screen_v2 Class Reference
Inheritance diagram for Kyra::Screen_v2:
Kyra::Screen Kyra::Screen_HoF Kyra::Screen_MR

Public Member Functions

 Screen_v2 (KyraEngine_v1 *vm, OSystem *system, const ScreenDim *dimTable, const int dimTableSize)
 
void checkedPageUpdate (int srcPage, int dstPage)
 
uint8 * generateOverlay (const Palette &pal, uint8 *buffer, int color, uint weight, int maxColor=-1)
 
void applyOverlay (int x, int y, int w, int h, int pageNum, const uint8 *overlay)
 
int findLeastDifferentColor (const uint8 *paletteEntry, const Palette &pal, uint8 firstColor, uint16 numColors, bool skipSpecialColors=false)
 
void getFadeParams (const Palette &pal, int delay, int &delayInc, int &diff) override
 
bool timedPaletteFadeStep (uint8 *pal1, uint8 *pal2, uint32 elapsedTime, uint32 totalTime)
 
uint8 * getPtrToShape (uint8 *shpFile, int shape)
 
const uint8 * getPtrToShape (const uint8 *shpFile, int shape)
 
int getShapeScaledWidth (const uint8 *shpFile, int scale)
 
int getShapeScaledHeight (const uint8 *shpFile, int scale)
 
uint16 getShapeSize (const uint8 *shp)
 
uint8 * makeShapeCopy (const uint8 *src, int index)
 
int getRectSize (int w, int h) override
 
bool calcBounds (int w0, int h0, int &x1, int &y1, int &w1, int &h1, int &x2, int &y2, int &w2)
 
void setTextColorMap (const uint8 *cmap) override
 
virtual int getLayer (int x, int y)
 
void wsaFrameAnimationStep (int x1, int y1, int x2, int y2, int w1, int h1, int w2, int h2, int srcPage, int dstPage, int dim)
 
void copyPageMemory (int srcPage, int srcPos, int dstPage, int dstPos, int numBytes)
 
void copyRegionEx (int srcPage, int srcW, int srcH, int dstPage, int dstX, int dstY, int dstW, int dstH, const ScreenDim *d, bool flag=false)
 
- Public Member Functions inherited from Kyra::Screen
 Screen (KyraEngine_v1 *vm, OSystem *system, const ScreenDim *dimTable, const int dimTableSize)
 
virtual bool init ()
 
virtual void setResolution ()
 
virtual void enableHiColorMode (bool enabled)
 
int updateScreen ()
 
void updateBackendScreen (bool force)
 
bool queryScreenDebug () const
 
bool enableScreenDebug (bool enable)
 
int setCurPage (int pageNum)
 
void clearCurPage ()
 
void copyWsaRect (int x, int y, int w, int h, int dimState, int plotFunc, const uint8 *src, int unk1, const uint8 *unkPtr1, const uint8 *unkPtr2)
 
void copyToPage0 (int y, int h, uint8 page, uint8 *seqBuf)
 
void shakeScreen (int times)
 
void copyRegion (int x1, int y1, int x2, int y2, int w, int h, int srcPage, int dstPage, int flags=0)
 
void copyPage (uint8 srcPage, uint8 dstPage)
 
void copyRegionToBuffer (int pageNum, int x, int y, int w, int h, uint8 *dest)
 
void copyBlockToPage (int pageNum, int x, int y, int w, int h, const uint8 *src)
 
void shuffleScreen (int sx, int sy, int w, int h, int srcPage, int dstPage, int ticks, bool transparent)
 
void fillRect (int x1, int y1, int x2, int y2, uint8 color, int pageNum=-1, bool xored=false)
 
void clearPage (int pageNum)
 
int getPagePixel (int pageNum, int x, int y)
 
void setPagePixel (int pageNum, int x, int y, uint8 color)
 
const uint8 * getCPagePtr (int pageNum) const
 
uint8 * getPageRect (int pageNum, int x, int y, int w, int h)
 
void fadeFromBlack (int delay=0x54, const UpdateFunctor *upFunc=0)
 
void fadeToBlack (int delay=0x54, const UpdateFunctor *upFunc=0)
 
virtual void fadePalette (const Palette &pal, int delay, const UpdateFunctor *upFunc=0)
 
virtual int fadePalStep (const Palette &pal, int diff)
 
void setPaletteIndex (uint8 index, uint8 red, uint8 green, uint8 blue)
 
virtual void setScreenPalette (const Palette &pal)
 
void transposeScreenOutputY (int yAdd)
 
bool isInterfacePaletteEnabled () const
 
void enableDualPaletteMode (int splitY)
 
void disableDualPaletteMode ()
 
virtual void getRealPalette (int num, uint8 *dst)
 
PalettegetPalette (int num)
 
void copyPalette (const int dst, const int src)
 
void drawLine (bool vertical, int x, int y, int length, int color)
 
void drawClippedLine (int x1, int y1, int x2, int y2, int color)
 
virtual void drawShadedBox (int x1, int y1, int x2, int y2, int color1, int color2)
 
void drawBox (int x1, int y1, int x2, int y2, int color)
 
virtual bool loadFont (FontId fontId, const char *filename)
 
FontId setFont (FontId fontId)
 
int getFontHeight () const
 
int getFontWidth () const
 
int getCharWidth (uint16 c) const
 
int getCharHeight (uint16 c) const
 
int getTextWidth (const char *str, bool nextWordOnly=false)
 
int getNumberOfCharacters (const char *str)
 
void printText (const char *str, int x, int y, uint8 color1, uint8 color2, int pitch=-1)
 
void setTextColor (const uint8 *cmap, int a, int b)
 
void setTextColor16bit (const uint16 *cmap16)
 
int setFontStyles (FontId fontId, int styles)
 
const ScreenDimgetScreenDim (int dim) const
 
void modifyScreenDim (int dim, int x, int y, int w, int h)
 
int screenDimTableCount () const
 
void setScreenDim (int dim)
 
int curDimIndex () const
 
void setTextMarginRight (int x)
 
uint8 * encodeShape (int x, int y, int w, int h, int flags)
 
int setNewShapeHeight (uint8 *shape, int height)
 
int resetShapeHeight (uint8 *shape)
 
virtual void drawShape (uint8 pageNum, const uint8 *shapeData, int x, int y, int sd, int flags,...)
 
void hideMouse ()
 
void showMouse ()
 
bool isMouseVisible () const
 
virtual void setMouseCursor (int x, int y, const byte *shape)
 
void rectClip (int &x, int &y, int w, int h)
 
virtual void loadBitmap (const char *filename, int tempPage, int dstPage, Palette *pal, bool skip=false)
 
virtual bool loadPalette (const char *filename, Palette &pal)
 
bool loadPaletteTable (const char *filename, int firstPalette)
 
virtual void loadPalette (const byte *data, Palette &pal, int bytes)
 
void setAnimBlockPtr (int size)
 
void setShapePages (int page1, int page2, int minY=-1, int maxY=201)
 
virtual byte getShapeFlag1 (int x, int y)
 
virtual byte getShapeFlag2 (int x, int y)
 
virtual int getDrawLayer (int x, int y)
 
virtual int getDrawLayer2 (int x, int y, int height)
 
void blockInRegion (int x, int y, int width, int height)
 
void blockOutRegion (int x, int y, int width, int height)
 
void crossFadeRegion (int x1, int y1, int x2, int y2, int w, int h, int srcPage, int dstPage)
 
uint16 * get16bitPalette ()
 
void set16bitShadingLevel (int lvl)
 

Protected Attributes

uint8 * _wsaFrameAnimBuffer
 
- Protected Attributes inherited from Kyra::Screen
uint8 * _pagePtrs [16]
 
const uint8 * _pagePtrsBuff
 
uint8 * _sjisOverlayPtrs [SCREEN_OVLS_NUM]
 
uint8 _pageMapping [SCREEN_PAGE_NUM]
 
bool _useOverlays
 
bool _useSJIS
 
int _fontStyles
 
Font_fonts [FID_NUM]
 
uint8 _textColorsMap [16]
 
uint16 _textColorsMap16bit [2]
 
uint8 * _textRenderBuffer
 
int _textRenderBufferSize
 
Common::SharedPtr< Graphics::FontSJIS > _sjisFontShared
 
uint8 _sjisInvisibleColor
 
bool _sjisMixedFontMode
 
bool _use16ColorMode
 
bool _useShapeShading
 
bool _4bitPixelPacking
 
bool _useHiResEGADithering
 
bool _useHiColorScreen
 
bool _isAmiga
 
bool _useAmigaExtraColors
 
bool _isSegaCD
 
Common::RenderMode _renderMode
 
int _bytesPerPixel
 
int _screenPageSize
 
const int _screenHeight
 
int _yTransOffs
 
Palette_screenPalette
 
Common::Array< Palette * > _palettes
 
Palette_internFadePalette
 
uint16 * _16bitPalette
 
uint16 * _16bitConversionPalette
 
uint8 _16bitShadingLevel
 
uint8 * _animBlockPtr
 
int _animBlockSize
 
const ScreenDim *const _dimTable
 
ScreenDim ** _customDimTable
 
const int _dimTableCount
 
int _curDimIndex
 
int _mouseLockCount
 
const uint8 _cursorColorKey
 
bool _forceFullUpdate
 
bool _paletteChanged
 
Common::List< Common::Rect_dirtyRects
 
OSystem_system
 
KyraEngine_v1_vm
 
const uint8 * _dsShapeFadingTable
 
int _dsShapeFadingLevel
 
const uint8 * _dsColorTable
 
const uint8 * _dsTransparencyTable1
 
const uint8 * _dsTransparencyTable2
 
const uint8 * _dsBackgroundFadingTable
 
int _dsDrawLayer
 
uint8 * _dsDstPage
 
int _dsTmpWidth
 
int _dsOffscreenLeft
 
int _dsOffscreenRight
 
int _dsScaleW
 
int _dsScaleH
 
int _dsOffscreenScaleVal1
 
int _dsOffscreenScaleVal2
 
int _drawShapeVar1
 
int _drawShapeVar3
 
int _drawShapeVar4
 
int _drawShapeVar5
 
int _dualPaletteModeSplitY
 
bool _debugEnabled
 

Additional Inherited Members

- Public Types inherited from Kyra::Screen
enum  {
  SCREEN_W = 320, SCREEN_H = 200, SCREEN_H_SEGA_NTSC = 224, SCREEN_PAGE_SIZE = 320 * 200 + 1024,
  SCREEN_OVL_SJIS_SIZE = 640 * 400, SCREEN_PAGE_NUM = 16, SCREEN_OVLS_NUM = 6, SCREEN_IDLEREFRESH_RESTART_MSEC = 250,
  SCREEN_IDLEREFRESH_RATE_MSEC = 16
}
 
enum  CopyRegionFlags { CR_NO_P_CHECK = 0x01 }
 
enum  DrawShapeFlags {
  kDRAWSHP_XFLIP = 0x01, kDRAWSHP_YFLIP = 0x02, kDRAWSHP_SCALE = 0x04, kDRAWSHP_WINREL = 0x10,
  kDRAWSHP_CENTER = 0x20, kDRAWSHP_FADE = 0x100, kDRAWSHP_PREDATOR = 0x200, kDRAWSHP_COMPACT = 0x400,
  kDRAWSHP_PRIORITY = 0x800, kDRAWSHP_TRANSPARENT = 0x1000, kDRAWSHP_BCKGRNDFADE = 0x2000, kDRAWSHP_MORPH = 0x4000,
  kDRAWSHP_COLOR = 0x8000
}
 
enum  FontId {
  FID_6_FNT = 0, FID_8_FNT, FID_9_FNT, FID_CRED6_FNT,
  FID_CRED8_FNT, FID_BOOKFONT_FNT, FID_GOLDFONT_FNT, FID_INTRO_FNT,
  FID_SJIS_FNT, FID_SJIS_TEXTMODE_FNT, FID_SJIS_LARGE_FNT, FID_SJIS_SMALL_FNT,
  FID_CHINESE_FNT, FID_KOREAN_FNT, FID_NUM
}
 
- Static Public Member Functions inherited from Kyra::Screen
static void decodeFrame1 (const uint8 *src, uint8 *dst, uint32 size)
 
static uint16 decodeEGAGetCode (const uint8 *&pos, uint8 &nib)
 
static void decodeFrame3 (const uint8 *src, uint8 *dst, uint32 size, bool isAmiga)
 
static uint decodeFrame4 (const uint8 *src, uint8 *dst, uint32 dstSize)
 
static void decodeFrameDelta (uint8 *dst, const uint8 *src, bool noXor=false)
 
static void decodeFrameDeltaPage (uint8 *dst, const uint8 *src, const int pitch, bool noXor)
 
static void convertAmigaGfx (uint8 *data, int w, int h, int depth=5, bool wsa=false, int bytesPerPlane=-1)
 
static void convertAmigaMsc (uint8 *data)
 
- Public Attributes inherited from Kyra::Screen
uint32 _idleUpdateTimer
 
uint16 _textMarginRight
 
bool _overdrawMargin
 
const ScreenDim_curDim
 
Common::String _lineBreakChars
 
int _charSpacing
 
int _lineSpacing
 
int _curPage
 
uint8 * _shapePages [2]
 
int _maskMinY
 
int _maskMaxY
 
FontId _currentFont
 
- Protected Types inherited from Kyra::Screen
enum  { kMaxDirtyRects = 50 }
 
typedef void(Screen::* DsPlotFunc) (uint8 *, uint8)
 
typedef int(Screen::* DsMarginSkipFunc) (uint8 *&, const uint8 *&, int &)
 
typedef void(Screen::* DsLineFunc) (uint8 *&, const uint8 *&, const DsPlotFunc, int &, int16)
 
- Protected Member Functions inherited from Kyra::Screen
void resetPagePtrsAndBuffers (int pageSize)
 
uint8 * getPagePtr (int pageNum)
 
virtual void updateDirtyRects ()
 
void updateDirtyRectsAmiga ()
 
void updateDirtyRectsOvl ()
 
template<typename srcType , typename scaleToType >
void scale2x (uint8 *dst, int dstPitch, const uint8 *src, int srcPitch, int w, int h)
 
template<typename pixelType >
void mergeOverlayImpl (int x, int y, int w, int h)
 
virtual void mergeOverlay (int x, int y, int w, int h)
 
byte * getOverlayPtr (int pageNum)
 
void clearOverlayPage (int pageNum)
 
void clearOverlayRect (int pageNum, int x, int y, int w, int h)
 
void copyOverlayRegion (int x, int y, int x2, int y2, int w, int h, int srcPage, int dstPage)
 
uint16 fetchChar (const char *&s) const
 
void drawChar (uint16 c, int x, int y, int pitch=-1)
 
int16 encodeShapeAndCalculateSize (uint8 *from, uint8 *to, int size)
 
uint16 shade16bitColor (uint16 col)
 
virtual void postProcessCursor (uint8 *data, int w, int h, int pitch)
 
void addDirtyRect (int x, int y, int w, int h)
 
int drawShapeMarginNoScaleUpwind (uint8 *&dst, const uint8 *&src, int &cnt)
 
int drawShapeMarginNoScaleDownwind (uint8 *&dst, const uint8 *&src, int &cnt)
 
int drawShapeMarginScaleUpwind (uint8 *&dst, const uint8 *&src, int &cnt)
 
int drawShapeMarginScaleDownwind (uint8 *&dst, const uint8 *&src, int &cnt)
 
int drawShapeSkipScaleUpwind (uint8 *&dst, const uint8 *&src, int &cnt)
 
int drawShapeSkipScaleDownwind (uint8 *&dst, const uint8 *&src, int &cnt)
 
void drawShapeProcessLineNoScaleUpwind (uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16)
 
void drawShapeProcessLineNoScaleDownwind (uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16)
 
void drawShapeProcessLineScaleUpwind (uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16 scaleState)
 
void drawShapeProcessLineScaleDownwind (uint8 *&dst, const uint8 *&src, const DsPlotFunc plot, int &cnt, int16 scaleState)
 
void drawShapePlotType0 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType1 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType3_7 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType4 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType5 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType6 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType8 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType9 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType11_15 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType12 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType13 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType14 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType16 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType20 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType21 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType33 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType37 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType48 (uint8 *dst, uint8 cmd)
 
void drawShapePlotType52 (uint8 *dst, uint8 cmd)
 
- Static Protected Member Functions inherited from Kyra::Screen
template<bool noXor>
static void wrapped_decodeFrameDelta (uint8 *dst, const uint8 *src)
 
template<bool noXor>
static void wrapped_decodeFrameDeltaPage (uint8 *dst, const uint8 *src, const int pitch)
 

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