ScummVM API documentation
Grim::GfxBase Class Referenceabstract
Inheritance diagram for Grim::GfxBase:
Grim::GfxOpenGLS Grim::GfxTinyGL

Public Member Functions

virtual void setupScreen (int screenW, int screenH)=0
 
virtual bool isHardwareAccelerated ()=0
 
virtual bool supportsShaders ()=0
 
virtual uint getScreenWidth ()
 
virtual uint getScreenHeight ()
 
virtual void setupCameraFrustum (float fov, float nclip, float fclip)=0
 
virtual void positionCamera (const Math::Vector3d &pos, const Math::Vector3d &interest, float roll)=0
 
virtual void positionCamera (const Math::Vector3d &pos, const Math::Matrix4 &rot)=0
 
virtual Math::Matrix4 getModelView ()=0
 
virtual Math::Matrix4 getProjection ()=0
 
virtual void clearScreen ()=0
 
virtual void clearDepthBuffer ()=0
 
virtual void flipBuffer ()=0
 
virtual void getScreenBoundingBox (const Mesh *mesh, int *x1, int *y1, int *x2, int *y2)=0
 
virtual void getScreenBoundingBox (const EMIModel *mesh, int *x1, int *y1, int *x2, int *y2)=0
 
virtual void getActorScreenBBox (const Actor *actor, Common::Point &p1, Common::Point &p2)=0
 
virtual void startActorDraw (const Actor *act)=0
 
virtual void finishActorDraw ()=0
 
virtual void setShadow (Shadow *shadow)=0
 
virtual void drawShadowPlanes ()=0
 
virtual void setShadowMode ()
 
virtual void clearShadowMode ()
 
virtual bool isShadowModeActive ()
 
virtual void setShadowColor (byte r, byte g, byte b)=0
 
virtual void getShadowColor (byte *r, byte *g, byte *b)=0
 
virtual void destroyShadow (Shadow *shadow)
 
virtual void set3DMode ()=0
 
virtual void translateViewpointStart ()=0
 
virtual void translateViewpoint (const Math::Vector3d &vec)=0
 
virtual void rotateViewpoint (const Math::Angle &angle, const Math::Vector3d &axis)=0
 
virtual void rotateViewpoint (const Math::Matrix4 &rot)=0
 
virtual void translateViewpointFinish ()=0
 
virtual void drawEMIModelFace (const EMIModel *model, const EMIMeshFace *face)=0
 
virtual void drawModelFace (const Mesh *mesh, const MeshFace *face)=0
 
virtual void drawSprite (const Sprite *sprite)=0
 
virtual void drawMesh (const Mesh *mesh)
 
virtual void drawOverlay (const Overlay *overlay)
 
virtual void enableLights ()=0
 
virtual void disableLights ()=0
 
virtual void setupLight (Light *light, int lightId)=0
 
virtual void turnOffLight (int lightId)=0
 
virtual void createTexture (Texture *texture, const uint8 *data, const CMap *cmap, bool clamp)=0
 
virtual void selectTexture (const Texture *texture)=0
 
virtual void destroyTexture (Texture *texture)=0
 
virtual void createBitmap (BitmapData *bitmap)=0
 
virtual void drawBitmap (const Bitmap *bitmap, int x, int y, uint32 layer=0)=0
 
virtual void destroyBitmap (BitmapData *bitmap)=0
 
virtual void createFont (Font *font)=0
 
virtual void destroyFont (Font *font)=0
 
virtual void createTextObject (TextObject *text)=0
 
virtual void drawTextObject (const TextObject *text)=0
 
virtual void destroyTextObject (TextObject *text)=0
 
virtual BitmapgetScreenshot (int w, int h, bool useStored)=0
 
virtual void storeDisplay ()=0
 
virtual void copyStoredToDisplay ()=0
 
virtual void dimScreen ()=0
 
virtual void dimRegion (int x, int y, int w, int h, float level)=0
 
virtual void setDimLevel (float dimLevel)
 
virtual void irisAroundRegion (int x1, int y1, int x2, int y2)=0
 
virtual void drawEmergString (int x, int y, const char *text, const Color &fgColor)=0
 
virtual void loadEmergFont ()=0
 
virtual void drawRectangle (const PrimitiveObject *primitive)=0
 
virtual void drawLine (const PrimitiveObject *primitive)=0
 
virtual void drawPolygon (const PrimitiveObject *primitive)=0
 
virtual void drawDimPlane ()
 
virtual void prepareMovieFrame (Graphics::Surface *frame)=0
 
virtual void drawMovieFrame (int offsetX, int offsetY)=0
 
virtual void releaseMovieFrame ()=0
 
virtual const char * getVideoDeviceName ()=0
 
virtual void saveState (SaveGame *state)
 
virtual void restoreState (SaveGame *state)
 
virtual void renderBitmaps (bool render)
 
virtual void renderZBitmaps (bool render)
 
virtual void makeScreenTextures ()
 
virtual void createMesh (Mesh *mesh)
 
virtual void destroyMesh (const Mesh *mesh)
 
virtual void createEMIModel (EMIModel *model)
 
virtual void updateEMIModel (const EMIModel *model)
 
virtual void destroyEMIModel (EMIModel *model)
 
virtual void createSpecialtyTexture (uint id, const uint8 *data, int width, int height)
 
virtual void createSpecialtyTextureFromScreen (uint id, uint8 *data, int x, int y, int width, int height)=0
 
TexturegetSpecialtyTexturePtr (uint id)
 
TexturegetSpecialtyTexturePtr (Common::String name)
 
virtual void setBlendMode (bool additive)=0
 

Static Public Member Functions

static Math::Matrix4 makeLookMatrix (const Math::Vector3d &pos, const Math::Vector3d &interest, const Math::Vector3d &up)
 
static Math::Matrix4 makeProjMatrix (float fov, float nclip, float fclip)
 

Public Attributes

Graphics::RendererType type
 

Protected Member Functions

BitmapcreateScreenshotBitmap (Graphics::Surface *src, int w, int h, bool flipOrientation)
 

Protected Attributes

Texture _specialtyTextures [_numSpecialtyTextures]
 
float _scaleW
 
float _scaleH
 
float _globalScaleW = 1.0f
 
float _globalScaleH = 1.0f
 
int _screenWidth
 
int _screenHeight
 
Shadow_currentShadowArray
 
unsigned char _shadowColorR
 
unsigned char _shadowColorG
 
unsigned char _shadowColorB
 
bool _renderBitmaps
 
bool _renderZBitmaps
 
bool _shadowModeActive
 
Math::Vector3d _currentPos
 
Math::Matrix4 _currentRot
 
float _dimLevel
 

Static Protected Attributes

static const unsigned int _numSpecialtyTextures = 22
 
static const int _gameHeight = 480
 
static const int _gameWidth = 640
 
static const int _globalHeight = 1080
 
static const int _globalWidth = 1920
 

Member Function Documentation

◆ setupScreen()

virtual void Grim::GfxBase::setupScreen ( int  screenW,
int  screenH 
)
pure virtual

Creates a render-context.

Parameters
screenWthe width of the context
screenHthe height of the context

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ isHardwareAccelerated()

virtual bool Grim::GfxBase::isHardwareAccelerated ( )
pure virtual

Query whether the current context is hardware-accelerated

Returns
true if hw-accelerated, false otherwise

Implemented in Grim::GfxTinyGL, and Grim::GfxOpenGLS.

◆ supportsShaders()

virtual bool Grim::GfxBase::supportsShaders ( )
pure virtual

Query whether the current context supports shaders

Returns
true if supports shaders, false otherwise

Implemented in Grim::GfxTinyGL, and Grim::GfxOpenGLS.

◆ flipBuffer()

virtual void Grim::GfxBase::flipBuffer ( )
pure virtual

Swap the buffers, making the drawn screen visible

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ getScreenBoundingBox()

virtual void Grim::GfxBase::getScreenBoundingBox ( const Mesh mesh,
int *  x1,
int *  y1,
int *  x2,
int *  y2 
)
pure virtual

FIXME: The implementations of these functions (for Grim and EMI, respectively) are very similar. Needs refactoring. See issue #789.

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ createBitmap()

virtual void Grim::GfxBase::createBitmap ( BitmapData bitmap)
pure virtual

Prepares a bitmap for drawing performs any format conversions needed for the renderer, and might create an internal representation of the bitmap external changes to the bitmap may not be visible after this is called. Must be called before drawBitmap can be used.

the external bitmap might have its data changed by this function,

Parameters
bitmapthe bitmap to be prepared
See also
destroyBitmap
drawBitmap

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ drawBitmap()

virtual void Grim::GfxBase::drawBitmap ( const Bitmap bitmap,
int  x,
int  y,
uint32  layer = 0 
)
pure virtual

Draws a bitmap before this is safe to use, createBitmap MUST have been called

Parameters
bitmapthe bitmap to be drawn
See also
createBitmap
destroyBitmap

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ destroyBitmap()

virtual void Grim::GfxBase::destroyBitmap ( BitmapData bitmap)
pure virtual

Deletes any internal references and representations of a bitmap after this is called, it is safe to dispose of or change the external bitmapdata.

Parameters
bitmapthe bitmap to be destroyed
See also
createBitmap
drawBitmap

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ dimScreen()

virtual void Grim::GfxBase::dimScreen ( )
pure virtual

Dims the entire screen Sets the entire screen to 10% of its current brightness, and converts it to grayscale.

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ irisAroundRegion()

virtual void Grim::GfxBase::irisAroundRegion ( int  x1,
int  y1,
int  x2,
int  y2 
)
pure virtual

Draw a completely opaque Iris around the specified rectangle. the arguments specify the distance from the screen-edge to the first non-iris pixel.

Parameters
xthe width of the Iris
ythe height of the Iris

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ prepareMovieFrame()

virtual void Grim::GfxBase::prepareMovieFrame ( Graphics::Surface frame)
pure virtual

Prepare a movie-frame for drawing performing any necessary conversion

Parameters
widththe width of the movie-frame.
heightthe height of the movie-frame.
bitmapa pointer to the data for the movie-frame.
See also
drawMovieFrame
releaseMovieFrame

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.

◆ releaseMovieFrame()

virtual void Grim::GfxBase::releaseMovieFrame ( )
pure virtual

Release the currently prepared movie-frame, if one exists.

See also
drawMovieFrame
prepareMovieFrame

Implemented in Grim::GfxOpenGLS, and Grim::GfxTinyGL.


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