Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

Renderer Class Reference

#include <renderer.h>

List of all members.

Public Methods

 Renderer (int w, int h, int depth, bool fullscr)
 ~Renderer ()
void setVideoMode (int w, int, int depth, bool fullscr)
int getScreenW ()
int getScreenH ()
int getScreenDepth ()
bool getFullScreen ()
void toggleFullScreen ()
void toggleWireframe ()
void swapBuffers ()
void clearBuffer ()
void renderSelectionBox (Vector p1, Vector p2)
void renderBox (Vector p1, Vector p2, float r, float g, float b, float a, GLint textureid=0)
void renderBox (Vector p1, Vector p2, Color col, GLint textureid=0)
void renderBox (Vector p1, Vector p2, Vector textureoff1, Vector textureoff2, float r, float g, float b, float a, GLint textureid)
void renderBox (Vector p1, Vector p2, Vector textureoff1, Vector textureoff2, Color col, GLint textureid)
void setRenderingMode (enum RenderingModes mode)
void renderMouseCursor (Vector p)
void renderPoint (Vector pos, Color col, float size=1)
void initCamera ()
void setCameraMode (enum CameraModes mode)
void setCameraLookAtDistance (float dist)
void adjustCameraLookAtDistance (float adjdist)
float getCameraLookAtDistance () const
void setCameraPosition (float x, float y, float z, bool updateLookat=true)
void setCameraPosition (Vector pos, bool updateLookat=true)
void setCameraLookAt (Vector pos, bool updatePosition=true)
void setCameraAltitude (float z)
Vector getCameraPosition ()
Vector getCameraLookAt ()
void moveCameraForward (float forward)
void moveCameraXYZ (float x, float y, float z=0, bool updateLookat=true)
void moveCamera2DRight (float x)
void moveCamera2DUp (float y)
void setCameraAngle (float angle, float pitch)
void rotateCameraAngle (float angle, float pitch)
void applyCamera (float prevPosWeight=0.0)
bool cameraMoved ()
Vector screenToWorld (int x, int y, float z=-1)
Vector screenToWorld (float x, float y, float z=-1)
Vector worldToScreen (Vector &objpos)
bool checkError (const char *str=NULL)
tgl_object * loadTGLObject (const char *fname)
tgl_object * getTGLObject (const char *fname)
void freeTGLObject (const char *fname)
TextureloadTexture (const char *texturefile, enum AlphaModes alpha=BLEND_ALPHA, bool mipmap=false, int minfilter=GL_NEAREST, int magfilter=GL_NEAREST, int wrapmode=GL_CLAMP)
GLint getTextureID (const char *texturefile, bool warn=true)
TexturegetTexture (const char *texturefile, bool warn=true)
void setFont (BFont *font)
void renderText (int x, int y, const char *str)
void renderText (float x, float y, const char *str)
float textLength (const char *str)

Private Types

typedef void(* GL_ActiveTextureARB_Func )(GLenum)
typedef void(* GL_MultiTexCoord2fARB_Func )(GLenum, GLfloat, GLfloat)

Private Methods

void set3DModelView ()

Private Attributes

GL_ActiveTextureARB_Func glActiveTextureARB_ptr
GL_MultiTexCoord2fARB_Func glMultiTexCoord2fARB_ptr
float fogColor [4]
enum RenderingModes currentRenderingMode
int screen_h
int screen_w
int screen_depth
bool fullscreen
SDL_Surface * screen
bool multitexturing
bool wireframe
bool camera_moved
bool camera_changed
float cameraAngle
float cameraPitch
float cameraDistance
Vector lookAt
Vector lookUp
Vector cameraPosition
Vector smoothLookAt
Vector smoothLookUp
Vector smoothCameraPosition
float maxViewDistance
enum CameraModes cameraMode
tgl_object * objects [MAX_TGL_OBJECTS]
int object_clients [MAX_TGL_OBJECTS]
char object_file_names [MAX_TGL_OBJECTS][MAX_FILE_NAME_LEN]
Texturetextures [MAX_TEXTURES]
BFontcurrentfont


Member Typedef Documentation

typedef void (* Renderer::GL_ActiveTextureARB_Func)(GLenum) [private]
 

typedef void (* Renderer::GL_MultiTexCoord2fARB_Func)(GLenum, GLfloat, GLfloat) [private]
 


Constructor & Destructor Documentation

Renderer::Renderer int   w,
int   h,
int   depth,
bool   fullscr
 

Constructor. w=screen width (pixels), h=screen height (pixels), depth=screen BPP (0=current depth), fullscr=use fullscreen mode if true.

Renderer::~Renderer  
 

Destructor.


Member Function Documentation

void Renderer::adjustCameraLookAtDistance float   adjdist
 

Adjust distance between camera and lookat point.

void Renderer::applyCamera float   prevPosWeight = 0.0
 

Apply camera trasformations. Variable prevPosWeight can be float between 0.0 and 1.0 which determines how fast the actual camera parameters changes (cool smooth movement effect).

bool Renderer::cameraMoved   [inline]
 

Returns true if camera has changed/moved by last applyCamera call.

bool Renderer::checkError const char *   str = NULL
 

Check GL/SDL errors. Returns true if error occurred. str=name of error source or NULL.

void Renderer::clearBuffer   [inline]
 

Clear GL doublebuffer.

void Renderer::freeTGLObject const char *   fname
 

Unload TGL object. This unloads object only if it doesn't have any clients.

Vector Renderer::getCameraLookAt   [inline]
 

Get camera lookat position.

float Renderer::getCameraLookAtDistance   const [inline]
 

Return distance between camera and lookat point.

Vector Renderer::getCameraPosition   [inline]
 

Get camera position.

bool Renderer::getFullScreen   [inline]
 

Returns true if fullscreen mode is active.

int Renderer::getScreenDepth   [inline]
 

Returns screen depth (bits per pixel). 0 means default depth.

int Renderer::getScreenH   [inline]
 

Returns screen height in pixels.

int Renderer::getScreenW   [inline]
 

Returns screen width in pixels.

tgl_object* Renderer::getTGLObject const char *   fname
 

Returns existing TGL object.

Texture* Renderer::getTexture const char *   texturefile,
bool   warn = true
 

Retrurn a pointer to Texture class for specified file, Returns NULL if texture not loaded. Parameter warn is only used by loadTexture.

GLint Renderer::getTextureID const char *   texturefile,
bool   warn = true
 

Return GL texture ID for texture file, if error occurred return value is 0. Note: You have to load textures separately. Parameter warn is only used by loadTexture.

void Renderer::initCamera  
 

Initialize camera, this must be called before any other camera operations.

tgl_object* Renderer::loadTGLObject const char *   fname
 

Load and return newly created TGL object. All loaded objects must be deleted with freeTGLObject. Every model is loaded only once and after first call it returns already loaded model pointer.

Texture* Renderer::loadTexture const char *   texturefile,
enum AlphaModes   alpha = BLEND_ALPHA,
bool   mipmap = false,
int   minfilter = GL_NEAREST,
int   magfilter = GL_NEAREST,
int   wrapmode = GL_CLAMP
 

Load and return Texture for texture file. AlphaModes are BLEND_ALPHA, BLEND_SOLID, BLEND_RGB ((r+g+b)/3), BLEND_RGBDIST (sqrt(r2+g2+b2)) or BLEND_STENCIL (1-bit alpha, pure white color is transparent). Currently supports PNG-files.

void Renderer::moveCamera2DRight float   x
 

Move camera right and left (strafe). x=distance to move.

void Renderer::moveCamera2DUp float   y
 

Move camera up and down. y=distance to move.

void Renderer::moveCameraForward float   forward
 

Move camera towards lookat. forward=distance to move.

void Renderer::moveCameraXYZ float   x,
float   y,
float   z = 0,
bool   updateLookat = true
 

Move camera in x,y,z-space. To leave camera lookat position untouched set updateLookat as false.

void Renderer::renderBox Vector   p1,
Vector   p2,
Vector   textureoff1,
Vector   textureoff2,
Color   col,
GLint   textureid
[inline]
 

Render a 2d box with custom Color and texture, used in text rendering. texoff1 and texoff2 specifies texture rendering offsets.

void Renderer::renderBox Vector   p1,
Vector   p2,
Vector   textureoff1,
Vector   textureoff2,
float   r,
float   g,
float   b,
float   a,
GLint   textureid
 

Render a 2d box with custom color (RGBA) and texture, used in text rendering. texoff1 and texoff2 specifies texture rendering offsets.

void Renderer::renderBox Vector   p1,
Vector   p2,
Color   col,
GLint   textureid = 0
[inline]
 

Render a 2d box with custom Color, used in GUI rendering. Texture is rendered if textureid is some GL texture ID.

void Renderer::renderBox Vector   p1,
Vector   p2,
float   r,
float   g,
float   b,
float   a,
GLint   textureid = 0
 

Render a 2d box with custom color (RGBA), used in GUI rendering. Texture is rendered if textureid is some GL texture ID.

void Renderer::renderMouseCursor Vector   p
 

Render 2d mouse cursor at p.

void Renderer::renderPoint Vector   pos,
Color   col,
float   size = 1
 

Render 2d point at position (pos) wit custom color (col). Size is point radius in pixels.

void Renderer::renderSelectionBox Vector   p1,
Vector   p2
 

Render a 2d selection box.

void Renderer::renderText float   x,
float   y,
const char *   str
[inline]
 

void Renderer::renderText int   x,
int   y,
const char *   str
 

Render str at position (x,y) with custom font.

void Renderer::rotateCameraAngle float   angle,
float   pitch
 

Adjust camera angle. angle=rotation around the z-axis, pitch=rotation around the x-axis.

Vector Renderer::screenToWorld float   x,
float   y,
float   z = -1
[inline]
 

2d to 3d transoform.

Vector Renderer::screenToWorld int   x,
int   y,
float   z = -1
 

2d to 3d transoform, if z=-1, the depth value is read from depth buffer.

void Renderer::set3DModelView   [private]
 

Set camera matrices.

void Renderer::setCameraAltitude float   z
 

Set camera z (altitude).

void Renderer::setCameraAngle float   angle,
float   pitch
 

Set angle. angle=rotation around the z-axis, pitch=rotation around the x-axis.

void Renderer::setCameraLookAt Vector   pos,
bool   updatePosition = true
 

Set camera 3d lookat position to pos. To leave camera eye position position untouched set updateLookat as false.

void Renderer::setCameraLookAtDistance float   dist
 

Set distance from camera to lookat point. Distance must be >= 0.001.

void Renderer::setCameraMode enum CameraModes   mode
 

Set camera movement modes: CAMERA_ORBIT or CAMERA_FREE. In orbit mode camera rotates around lookat point but in free mode it rotates around camera position.

void Renderer::setCameraPosition Vector   pos,
bool   updateLookat = true
 

Set camera 3d position to pos, To leave camera lookat position untouched set updateLookat as false.

void Renderer::setCameraPosition float   x,
float   y,
float   z,
bool   updateLookat = true
 

Set camera 3d position to (x, y, z). To leave camera lookat position untouched set updateLookat as false.

void Renderer::setFont BFont *   font [inline]
 

Set font. Font must be set before other text methods are usable.

void Renderer::setRenderingMode enum RenderingModes   mode
 

Set OpenGL state for different operations, enums: RENDER_TGL_OBJECT, RENDER_INTERFACE, RENDER_TERRAIN.

void Renderer::setVideoMode int   w,
int  ,
int   depth,
bool   fullscr
 

Update GL viewport when resizing rendering window.

void Renderer::swapBuffers   [inline]
 

Swap GL doublebuffers.

float Renderer::textLength const char *   str
 

Return a lenghth in pixels of a string with curren font.

void Renderer::toggleFullScreen   [inline]
 

Toggle between fullscreen and windowed mode.

void Renderer::toggleWireframe   [inline]
 

Toggle wireframe/solid rendering.

Vector Renderer::worldToScreen Vector &   objpos
 

3d to 2d transoform, return objpos in window coordinates.


Member Data Documentation

float Renderer::cameraAngle [private]
 

float Renderer::cameraDistance [private]
 

enum CameraModes Renderer::cameraMode [private]
 

float Renderer::cameraPitch [private]
 

Vector Renderer::cameraPosition [private]
 

bool Renderer::camera_changed [private]
 

bool Renderer::camera_moved [private]
 

enum RenderingModes Renderer::currentRenderingMode [private]
 

BFont* Renderer::currentfont [private]
 

float Renderer::fogColor[4] [private]
 

bool Renderer::fullscreen [private]
 

GL_ActiveTextureARB_Func Renderer::glActiveTextureARB_ptr [private]
 

GL_MultiTexCoord2fARB_Func Renderer::glMultiTexCoord2fARB_ptr [private]
 

Vector Renderer::lookAt [private]
 

Vector Renderer::lookUp [private]
 

float Renderer::maxViewDistance [private]
 

bool Renderer::multitexturing [private]
 

int Renderer::object_clients[MAX_TGL_OBJECTS] [private]
 

char Renderer::object_file_names[MAX_TGL_OBJECTS][MAX_FILE_NAME_LEN] [private]
 

tgl_object* Renderer::objects[MAX_TGL_OBJECTS] [private]
 

SDL_Surface* Renderer::screen [private]
 

int Renderer::screen_depth [private]
 

int Renderer::screen_h [private]
 

int Renderer::screen_w [private]
 

Vector Renderer::smoothCameraPosition [private]
 

Vector Renderer::smoothLookAt [private]
 

Vector Renderer::smoothLookUp [private]
 

Texture* Renderer::textures[MAX_TEXTURES] [private]
 

bool Renderer::wireframe [private]
 


The documentation for this class was generated from the following file:
Generated at Fri Oct 5 20:23:53 2001 for Executor by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001