Files
itgmania212121/stepmania/src/RageDisplay.h
T
Glenn Maynard b2062dd91f add paletted texture entry points
remove texture compression ones
2003-01-22 22:41:05 +00:00

105 lines
2.8 KiB
C++

#ifndef RAGEDISPLAY_H
#define RAGEDISPLAY_H
/*
-----------------------------------------------------------------------------
Class: RageDisplay
Desc: Wrapper around a D3D device. Also holds global vertex and index
buffers that dynamic geometry can use to render.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
class RageTexture;
struct RageMatrix;
struct RageVertex;
#include "RageTypes.h"
const int REFRESH_DEFAULT = 0;
struct oglspecs_t;
class RageDisplay
{
friend class RageTexture;
public:
RageDisplay( bool windowed, int width, int height, int bpp, int rate, bool vsync );
~RageDisplay();
bool IsSoftwareRenderer();
bool SetVideoMode( bool windowed, int width, int height, int bpp, int rate, bool vsync );
/* Call this when the resolution has been changed externally: */
void ResolutionChanged(int width, int height);
void Clear();
void Flip();
bool IsWindowed() const;
int GetWidth() const;
int GetHeight() const;
int GetBPP() const;
void PushMatrix();
void PopMatrix();
void Translate( float x, float y, float z );
void TranslateLocal( float x, float y, float z );
void Scale( float x, float y, float z );
void RotateX( float r );
void RotateY( float r );
void RotateZ( float r );
void smPostMultMatrixf( const RageMatrix &f );
void SetTexture( RageTexture* pTexture );
void SetTextureModeModulate();
void SetTextureModeGlow();
void SetBlendModeNormal();
void SetBlendModeAdd();
bool ZBufferEnabled() const;
void EnableZBuffer();
void DisableZBuffer();
void EnableTextureWrapping();
void DisableTextureWrapping();
void DrawQuad( const RageVertex v[4] ); // upper-left, upper-right, lower-left, lower-right
void DrawQuads( const RageVertex v[], int iNumVerts );
void DrawFan( const RageVertex v[], int iNumVerts );
void DrawStrip( const RageVertex v[], int iNumVerts );
void DrawLoop( const RageVertex v[], int iNumVerts, float LineWidth );
void FlushQueue();
int GetMaxTextureSize() const;
void EnterPerspective(float fov, bool preserve_loc = true);
void ExitPerspective();
void LookAt(const RageVector3 &Eye, const RageVector3 &At, const RageVector3 &Up);
/* Statistics */
int GetFPS() const;
int GetVPF() const;
int GetCumFPS() const; /* average FPS since last reset */
void ResetStats();
const oglspecs_t &GetSpecs() const { return *m_oglspecs; }
void DisablePalettedTexture();
protected:
void AddVerts( const RageVertex v[], int iNumVerts );
void SetBlendMode(int src, int dst);
void SetupOpenGL();
void SetupExtensions();
void SetViewport(int shift_left, int shift_down);
oglspecs_t *m_oglspecs;
/* Don't use this to check extensions; use GetSpecs. */
bool HasExtension(CString ext) const;
};
extern RageDisplay* DISPLAY; // global and accessable from anywhere in our program
#endif