22#ifndef FREESCAPE_GFX_OPENGL_H
23#define FREESCAPE_GFX_OPENGL_H
25#include "graphics/opengl/system_headers.h"
26#include "math/vector3d.h"
27#include "math/vector2d.h"
29#include "freescape/gfx.h"
35class OpenGLRenderer :
public Renderer {
37 OpenGLRenderer(
int screenW,
int screenH,
Common::RenderMode renderMode,
bool authenticGraphics);
38 virtual ~OpenGLRenderer();
46 void copyToVertexArray(uint idx,
const Math::Vector3d &src) {
47 assert(idx < kVertexArraySize);
48 _verts[idx].x = src.x();
49 _verts[idx].y = src.y();
50 _verts[idx].z = src.z();
62 void copyToCoordArray(uint idx,
const Math::Vector2d &src) {
63 assert(idx < kCoordsArraySize);
64 _coords[idx].x = src.getValue(0);
65 _coords[idx].y = src.getValue(1);
68 virtual void init()
override;
69 virtual void clear(uint8 r, uint8 g, uint8 b,
bool ignoreViewport =
false)
override;
70 virtual void clearDepthBuffer(
bool ignoreViewport =
false)
override;
71 virtual void setViewport(
const Common::Rect &rect)
override;
73 virtual void positionCamera(
const Math::Vector3d &pos,
const Math::Vector3d &interest,
float rollAngle = 0.0)
override;
74 virtual void updateProjectionMatrix(
float fov,
float aspectRatio,
float nearClipPlane,
float farClipPlane)
override;
76 virtual void useColor(uint8 r, uint8 g, uint8 b)
override;
77 virtual void polygonOffset(
bool enabled)
override;
78 virtual void setStippleData(
byte *data)
override;
79 virtual void useStipple(
bool enabled)
override;
80 virtual void enableCulling(
bool enabled)
override;
82 virtual void setStereoEye(StereoEye eye)
override;
84 Texture *createTexture(
const Graphics::Surface *surface,
bool is3D =
false)
override;
85 void freeTexture(Texture *texture)
override;
86 virtual void drawTexturedRect2D(
const Common::Rect &screenRect,
const Common::Rect &textureRect, Texture *texture)
override;
88 virtual void renderSensorShoot(
byte color,
const Math::Vector3d sensor,
const Math::Vector3d player,
const Common::Rect &viewPort)
override;
89 virtual void renderPlayerShootBall(
byte color,
const Common::Point &position,
int frame,
const Common::Rect &viewPort)
override;
91 virtual void renderCrossair(
const Common::Point &crossairPosition)
override;
95 virtual void flipBuffer()
override;
96 virtual void drawFloor(uint8 color)
override;
97 virtual void fillViewportStippled(uint8 r1, uint8 g1, uint8 b1, uint8 r2, uint8 g2, uint8 b2,
byte *stipple)
override;
98 void drawCelestialBody(Math::Vector3d position,
float radius, uint8 color)
override;
99 void drawSkybox(Texture *texture, Math::Vector3d camera)
override;
100 void drawThunder(Texture *texture, Math::Vector3d camera,
float size)
override;
RenderMode
Definition: rendermode.h:48
Definition: display_client.h:53