ScummVM API documentation
Freescape::OpenGLShaderRenderer Class Reference
Inheritance diagram for Freescape::OpenGLShaderRenderer:
Freescape::Renderer

Classes

struct  Coord
 
struct  Vertex
 

Public Member Functions

 OpenGLShaderRenderer (int screenW, int screenH, Common::RenderMode renderMode, bool authenticGraphics)
 
void copyToVertexArray (uint idx, const Math::Vector3d &src)
 
virtual void init () override
 
virtual void drawAABB (const Math::AABB &aabb, uint8 r, uint8 g, uint8 b) override
 
virtual void clear (uint8 r, uint8 g, uint8 b, bool ignoreViewport=false) override
 
virtual void clearDepthBuffer (bool ignoreViewport=false) override
 
virtual void setViewport (const Common::Rect &rect) override
 
virtual Common::Point nativeResolution () override
 
virtual void positionCamera (const Math::Vector3d &pos, const Math::Vector3d &interest, float rollAngle=0.0f) override
 
virtual void updateProjectionMatrix (float fov, float aspectRatio, float nearClipPlane, float farClipPlane) override
 
virtual void useColor (uint8 r, uint8 g, uint8 b) override
 
virtual void polygonOffset (bool enabled) override
 
virtual void enableCulling (bool enabled) override
 
virtual void setStereoEye (StereoEye eye) override
 
virtual void setStippleData (byte *data) override
 
virtual void useStipple (bool enabled) override
 
Texture * createTexture (const Graphics::Surface *surface, bool is3D=false) override
 
void freeTexture (Texture *texture) override
 
virtual void drawTexturedRect2D (const Common::Rect &screenRect, const Common::Rect &textureRect, Texture *texture) override
 
virtual void renderSensorShoot (byte color, const Math::Vector3d sensor, const Math::Vector3d player, const Common::Rect &viewPort) override
 
virtual void renderPlayerShootBall (byte color, const Common::Point &position, int frame, const Common::Rect &viewPort) override
 
virtual void renderPlayerShootRay (byte color, const Common::Point &position, const Common::Rect &viewPort) override
 
void drawCelestialBody (Math::Vector3d position, float radius, uint8 color) override
 
void drawSkybox (Texture *texture, Math::Vector3d camera) override
 
void drawThunder (Texture *texture, Math::Vector3d position, float size) override
 
virtual void renderCrossair (const Common::Point &crossairPosition) override
 
virtual void renderFace (const Common::Array< Math::Vector3d > &vertices) override
 
virtual void flipBuffer () override
 
virtual void drawFloor (uint8 color) override
 
virtual void fillViewportStippled (uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2, uint8 b2, byte *stipple) override
 
virtual Graphics::Surface * getScreenshot () override
 
- Public Member Functions inherited from Freescape::Renderer
 Renderer (int screenW, int screenH, Common::RenderMode renderMode, bool authenticGraphics)
 
virtual void init ()=0
 
virtual void setViewport (const Common::Rect &rect)=0
 
virtual void flipBuffer ()
 
virtual void setStereoEye (StereoEye eye)
 
void setStereoParameters (float separation, float convergence)
 
virtual void useColor (uint8 r, uint8 g, uint8 b)=0
 
virtual void enableCulling (bool enabled)
 
virtual void polygonOffset (bool enabled)=0
 
virtual Texture * createTexture (const Graphics::Surface *surface, bool is3D=false)=0
 
Graphics::Surface * convertImageFormatIfNecessary (Graphics::ManagedSurface *surface)
 
virtual void freeTexture (Texture *texture)=0
 
virtual void drawTexturedRect2D (const Common::Rect &screenRect, const Common::Rect &textureRect, Texture *texture)=0
 
virtual void renderSensorShoot (byte color, const Math::Vector3d sensor, const Math::Vector3d player, const Common::Rect &viewPort)=0
 
virtual void renderPlayerShootBall (byte color, const Common::Point &position, int frame, const Common::Rect &viewPort)=0
 
virtual void renderPlayerShootRay (byte color, const Common::Point &position, const Common::Rect &viewPort)=0
 
virtual void renderCrossair (const Common::Point &crossairPosition)=0
 
virtual void renderCube (const Math::Vector3d &position, const Math::Vector3d &size, Common::Array< uint8 > *colours, Common::Array< uint8 > *ecolours, float offset=0.0)
 
virtual void renderRectangle (const Math::Vector3d &position, const Math::Vector3d &size, Common::Array< uint8 > *colours, Common::Array< uint8 > *ecolours, float offset=0.0)
 
virtual void renderPolygon (const Math::Vector3d &origin, const Math::Vector3d &size, const Common::Array< float > *ordinates, Common::Array< uint8 > *colours, Common::Array< uint8 > *ecolours, float offset=0.0)
 
virtual void renderPyramid (const Math::Vector3d &origin, const Math::Vector3d &size, const Common::Array< float > *ordinates, Common::Array< uint8 > *colours, Common::Array< uint8 > *ecolours, int type)
 
virtual void renderFace (const Common::Array< Math::Vector3d > &vertices)=0
 
void setColorRemaps (ColorReMap *colorRemaps)
 
virtual void clear (uint8 r, uint8 g, uint8 b, bool ignoreViewport=false)=0
 
virtual void clearDepthBuffer (bool ignoreViewport=false)
 
virtual void drawFloor (uint8 color)=0
 
virtual void drawBackground (uint8 color)
 
virtual void fillViewportStippled (uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2, uint8 b2, byte *stipple)
 
void drawEclipse (uint8 color1, uint8 color2, float difference)
 
virtual void drawSkybox (Texture *texture, Math::Vector3d camera)
 
virtual void drawThunder (Texture *texture, Math::Vector3d camera, float size)
 
virtual void drawCelestialBody (Math::Vector3d position, float radius, uint8 color)
 
Common::Rect viewport () const
 
virtual Common::Point nativeResolution ()
 
void readFromPalette (uint8 index, uint8 &r, uint8 &g, uint8 &b)
 
void setPaletteValue (uint8 index, uint8 r, uint8 g, uint8 b)
 
uint8 indexFromColor (uint8 r, uint8 g, uint8 b)
 
uint8 mapEGAColor (uint8 index)
 
bool getRGBAt (uint8 index, uint8 ecolor, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &r2, uint8 &g2, uint8 &b2, byte *&stipple)
 
bool getRGBAtC64 (uint8 index, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &r2, uint8 &g2, uint8 &b2, byte *&stipple)
 
bool getRGBAtCGA (uint8 index, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &r2, uint8 &g2, uint8 &b2, byte *&stipple)
 
bool getRGBAtCPC (uint8 index, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &r2, uint8 &g2, uint8 &b2, byte *&stipple)
 
bool getRGBAtEGA (uint8 index, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &r2, uint8 &g2, uint8 &b2)
 
bool getRGBAtZX (uint8 index, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &r2, uint8 &g2, uint8 &b2, byte *&stipple)
 
bool getRGBAtHercules (uint8 index, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &r2, uint8 &g2, uint8 &b2, byte *&stipple)
 
void extractCPCIndexes (uint8 cm1, uint8 cm2, uint8 &i1, uint8 &i2)
 
void extractC64Indexes (uint8 cm1, uint8 cm2, uint8 &i1, uint8 &i2)
 
void selectColorFromFourColorPalette (uint8 index, uint8 &r1, uint8 &g1, uint8 &b1)
 
virtual void setStippleData (byte *data)
 
virtual void useStipple (bool enabled)
 
void scaleStipplePattern (byte originalPattern[128], byte newPattern[128])
 
void setColorMap (ColorMap *colorMap_)
 
void clearColorPairArray ()
 
void fillColorPairArray ()
 
void updateColorCycling ()
 
virtual void drawAABB (const Math::AABB &aabb, uint8 r, uint8 g, uint8 b)
 
virtual void positionCamera (const Math::Vector3d &pos, const Math::Vector3d &interest, float rollAngle=0.0f)=0
 
virtual void updateProjectionMatrix (float fov, float aspectRatio, float nearClipPlane, float farClipPlane)=0
 
Math::Matrix4 getMvpMatrix () const
 
virtual Graphics::Surface * getScreenshot ()=0
 
void flipVertical (Graphics::Surface *s)
 
bool computeScreenViewport ()
 

Public Attributes

Math::Matrix4 _projectionMatrix
 
Math::Matrix4 _modelViewMatrix
 
Math::Matrix4 _mvpMatrix
 
Vertex * _verts
 
OpenGL::Shader * _triangleShader
 
OpenGL::Shader * _bitmapShader
 
OpenGL::Shader * _cubemapShader
 
GLuint _triangleVBO
 
GLuint _bitmapVBO
 
GLuint _cubemapVertVBO
 
GLuint _cubemapTexCoordVBO
 
GLuint _cubemapEBO
 
int _defaultShaderStippleArray [128]
 
int _variableStippleArray [128]
 
- Public Attributes inherited from Freescape::Renderer
Graphics::PixelFormat _texturePixelFormat
 
bool _isAccelerated
 
bool _authenticGraphics
 
byte _defaultStippleArray [128]
 
byte * _variableStippleArray
 
float _skyNormals [16][3]
 
float _skyUvs1008 [16][2]
 
float _skyUvs672 [16][2]
 
float _skyUvs128 [16][2]
 
float _skyVertices [16][3]
 
unsigned int _skyIndices [24]
 
byte * _palette
 
ColorMap * _colorMap
 
ColorReMap * _colorRemaps
 
byte _colorPair [16]
 
int _keyColor
 
int _inkColor
 
int _paperColor
 
int _underFireBackgroundColor
 
int _fourColorBackground
 
Common::Point _shakeOffset
 
byte _stipples [16][128]
 
Common::Array< uint16 > _colorCyclingTable
 
int _colorCyclingIndex
 
int _colorCyclingTimer
 
int _colorCyclingPaletteIndex
 
int _colorCyclingSpeed
 
int _scale
 
bool _debugRenderBoundingBoxes
 
bool _debugRenderOcclusionBoxes
 
bool _debugRenderWireframe
 
bool _debugRenderNormals
 
Common::Array< uint8 > _debugHighlightObjectIDs
 
int _screenW
 
int _screenH
 
Common::RenderMode _renderMode
 

Additional Inherited Members

- Public Types inherited from Freescape::Renderer
enum  StereoEye { kStereoEyeNone = 0 , kStereoEyeLeft = -1 , kStereoEyeRight = 1 , kStereoEyeFlatAnaglyph = 2 }
 
- Protected Member Functions inherited from Freescape::Renderer
Math::Matrix4 makeProjectionMatrix (float fov, float nearClipPlane, float farClipPlane) const
 
void applyStereoTint (uint8 &r, uint8 &g, uint8 &b) const
 
void getStereoCamera (const Math::Vector3d &pos, const Math::Vector3d &interest, Math::Vector3d &eyePos, Math::Vector3d &eyeInterest) const
 
float getStereoFrustumOffset (float nearClipPlane, bool mirroredProjection) const
 
- Protected Attributes inherited from Freescape::Renderer
Common::Rect _screenViewport
 
Common::Rect _viewport
 
Common::Rect _unscaledViewport
 
Math::Matrix4 _projectionMatrix
 
Math::Matrix4 _modelViewMatrix
 
Math::Matrix4 _mvpMatrix
 
Math::Frustum _frustum
 
StereoEye _stereoEye
 
float _stereoSeparation
 
float _stereoConvergence
 

Member Function Documentation

◆ init()

virtual void Freescape::OpenGLShaderRenderer::init ( )
overridevirtual

Implements Freescape::Renderer.

◆ drawAABB()

virtual void Freescape::OpenGLShaderRenderer::drawAABB ( const Math::AABB &  aabb,
uint8  r,
uint8  g,
uint8  b 
)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ clear()

virtual void Freescape::OpenGLShaderRenderer::clear ( uint8  r,
uint8  g,
uint8  b,
bool  ignoreViewport = false 
)
overridevirtual

Implements Freescape::Renderer.

◆ clearDepthBuffer()

virtual void Freescape::OpenGLShaderRenderer::clearDepthBuffer ( bool  ignoreViewport = false)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ setViewport()

virtual void Freescape::OpenGLShaderRenderer::setViewport ( const Common::Rect &  rect)
overridevirtual

Implements Freescape::Renderer.

◆ nativeResolution()

virtual Common::Point Freescape::OpenGLShaderRenderer::nativeResolution ( )
overridevirtual

Reimplemented from Freescape::Renderer.

◆ positionCamera()

virtual void Freescape::OpenGLShaderRenderer::positionCamera ( const Math::Vector3d &  pos,
const Math::Vector3d &  interest,
float  rollAngle = 0.0f 
)
overridevirtual

Select the window where to render

This also sets the viewport

Implements Freescape::Renderer.

◆ updateProjectionMatrix()

virtual void Freescape::OpenGLShaderRenderer::updateProjectionMatrix ( float  fov,
float  aspectRatio,
float  nearClipPlane,
float  farClipPlane 
)
overridevirtual

Implements Freescape::Renderer.

◆ useColor()

virtual void Freescape::OpenGLShaderRenderer::useColor ( uint8  r,
uint8  g,
uint8  b 
)
overridevirtual

Implements Freescape::Renderer.

◆ polygonOffset()

virtual void Freescape::OpenGLShaderRenderer::polygonOffset ( bool  enabled)
overridevirtual

Implements Freescape::Renderer.

◆ enableCulling()

virtual void Freescape::OpenGLShaderRenderer::enableCulling ( bool  enabled)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ setStereoEye()

virtual void Freescape::OpenGLShaderRenderer::setStereoEye ( StereoEye  eye)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ setStippleData()

virtual void Freescape::OpenGLShaderRenderer::setStippleData ( byte *  data)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ useStipple()

virtual void Freescape::OpenGLShaderRenderer::useStipple ( bool  enabled)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ createTexture()

Texture * Freescape::OpenGLShaderRenderer::createTexture ( const Graphics::Surface *  surface,
bool  is3D = false 
)
overridevirtual

Implements Freescape::Renderer.

◆ freeTexture()

void Freescape::OpenGLShaderRenderer::freeTexture ( Texture *  texture)
overridevirtual

Implements Freescape::Renderer.

◆ drawTexturedRect2D()

virtual void Freescape::OpenGLShaderRenderer::drawTexturedRect2D ( const Common::Rect &  screenRect,
const Common::Rect &  textureRect,
Texture *  texture 
)
overridevirtual

Implements Freescape::Renderer.

◆ renderSensorShoot()

virtual void Freescape::OpenGLShaderRenderer::renderSensorShoot ( byte  color,
const Math::Vector3d  sensor,
const Math::Vector3d  player,
const Common::Rect &  viewPort 
)
overridevirtual

Implements Freescape::Renderer.

◆ renderPlayerShootBall()

virtual void Freescape::OpenGLShaderRenderer::renderPlayerShootBall ( byte  color,
const Common::Point &  position,
int  frame,
const Common::Rect &  viewPort 
)
overridevirtual

Implements Freescape::Renderer.

◆ renderPlayerShootRay()

virtual void Freescape::OpenGLShaderRenderer::renderPlayerShootRay ( byte  color,
const Common::Point &  position,
const Common::Rect &  viewPort 
)
overridevirtual

Implements Freescape::Renderer.

◆ drawCelestialBody()

void Freescape::OpenGLShaderRenderer::drawCelestialBody ( Math::Vector3d  position,
float  radius,
uint8  color 
)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ drawSkybox()

void Freescape::OpenGLShaderRenderer::drawSkybox ( Texture *  texture,
Math::Vector3d  camera 
)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ drawThunder()

void Freescape::OpenGLShaderRenderer::drawThunder ( Texture *  texture,
Math::Vector3d  position,
float  size 
)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ renderCrossair()

virtual void Freescape::OpenGLShaderRenderer::renderCrossair ( const Common::Point &  crossairPosition)
overridevirtual

Implements Freescape::Renderer.

◆ renderFace()

virtual void Freescape::OpenGLShaderRenderer::renderFace ( const Common::Array< Math::Vector3d > &  vertices)
overridevirtual

Implements Freescape::Renderer.

◆ flipBuffer()

virtual void Freescape::OpenGLShaderRenderer::flipBuffer ( )
overridevirtual

Swap the buffers, making the drawn screen visible

Reimplemented from Freescape::Renderer.

◆ drawFloor()

virtual void Freescape::OpenGLShaderRenderer::drawFloor ( uint8  color)
overridevirtual

Implements Freescape::Renderer.

◆ fillViewportStippled()

virtual void Freescape::OpenGLShaderRenderer::fillViewportStippled ( uint8  r1,
uint8  g1,
uint8  b1,
uint8  r2,
uint8  g2,
uint8  b2,
byte *  stipple 
)
overridevirtual

Reimplemented from Freescape::Renderer.

◆ getScreenshot()

virtual Graphics::Surface * Freescape::OpenGLShaderRenderer::getScreenshot ( )
overridevirtual

Implements Freescape::Renderer.


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