RageDisplay_Null

This commit is contained in:
Glenn Maynard
2004-03-24 08:31:29 +00:00
parent b461476016
commit ee6a182c01
4 changed files with 212 additions and 0 deletions
+1
View File
@@ -202,6 +202,7 @@ RageFileDriverZip.cpp RageFileDriverZip.h
Rage = $(Helpers) $(PCRE)\ Rage = $(Helpers) $(PCRE)\
RageBitmapTexture.cpp RageBitmapTexture.h RageDisplay.cpp RageDisplay.h RageDisplay_OGL.cpp RageDisplay_OGL.h \ RageBitmapTexture.cpp RageBitmapTexture.h RageDisplay.cpp RageDisplay.h RageDisplay_OGL.cpp RageDisplay_OGL.h \
RageDisplay_Null.cpp RageDisplay_Null.h \
RageException.cpp RageException.h RageInput.cpp RageInput.h \ RageException.cpp RageException.h RageInput.cpp RageInput.h \
RageInputDevice.cpp RageInputDevice.h RageLog.cpp RageLog.h RageMath.cpp RageMath.h RageModelGeometry.cpp RageModelGeometry.h RageSound.cpp RageSound.h \ RageInputDevice.cpp RageInputDevice.h RageLog.cpp RageLog.h RageMath.cpp RageMath.h RageModelGeometry.cpp RageModelGeometry.h RageSound.cpp RageSound.h \
RageSoundManager.cpp RageSoundManager.h RageSoundReader.h RageSoundReader_FileReader.cpp RageSoundReader_FileReader.h \ RageSoundManager.cpp RageSoundManager.h RageSoundReader.h RageSoundReader_FileReader.cpp RageSoundReader_FileReader.h \
+128
View File
@@ -0,0 +1,128 @@
#include "global.h"
/*
-----------------------------------------------------------------------------
Class: RageDisplay
Desc: See header.
Copyright (c) 2004 by the person(s) listed below. All rights reserved.
Chris Danford
Glenn Maynard
-----------------------------------------------------------------------------
*/
#include "SDL_utils.h"
#include "RageFile.h"
#include "RageDisplay.h"
#include "RageDisplay_Null.h"
#include "RageUtil.h"
#include "RageLog.h"
#include "RageTimer.h"
#include "RageTexture.h"
#include "RageTextureManager.h"
#include "RageMath.h"
#include "RageTypes.h"
#include "StepMania.h"
#include "RageUtil.h"
#include <math.h>
static RageDisplay::PixelFormatDesc PIXEL_FORMAT_DESC[RageDisplay::NUM_PIX_FORMATS] = {
{
/* R8G8B8A8 */
32,
{ 0xFF000000,
0x00FF0000,
0x0000FF00,
0x000000FF }
}, {
/* R4G4B4A4 */
16,
{ 0xF000,
0x0F00,
0x00F0,
0x000F },
}, {
/* R5G5B5A1 */
16,
{ 0xF800,
0x07C0,
0x003E,
0x0001 },
}, {
/* R5G5B5 */
16,
{ 0xF800,
0x07C0,
0x003E,
0x0000 },
}, {
/* R8G8B8 */
24,
{ 0xFF0000,
0x00FF00,
0x0000FF,
0x000000 }
}, {
/* Paletted */
8,
{ 0,0,0,0 } /* N/A */
}, {
/* B8G8R8A8 */
24,
{ 0x0000FF,
0x00FF00,
0xFF0000,
0x000000 }
}, {
/* A1B5G5R5 */
16,
{ 0x7C00,
0x03E0,
0x001F,
0x8000 },
}
};
RageDisplay_Null::RageDisplay_Null()
{
LOG->MapLog("renderer", "Current renderer: null");
}
SDL_Surface* RageDisplay_Null::CreateScreenshot()
{
const PixelFormatDesc &desc = PIXEL_FORMAT_DESC[FMT_RGB8];
SDL_Surface *image = SDL_CreateRGBSurfaceSane(
SDL_SWSURFACE, 640, 480,
desc.bpp, desc.masks[0], desc.masks[1], desc.masks[2], desc.masks[3] );
memset( image->pixels, 0, 480*image->pitch );
return image;
}
const RageDisplay::PixelFormatDesc *RageDisplay_Null::GetPixelFormatDesc(PixelFormat pf) const
{
ASSERT( pf < NUM_PIX_FORMATS );
return &PIXEL_FORMAT_DESC[pf];
}
RageMatrix RageDisplay_Null::GetOrthoMatrix( float l, float r, float b, float t, float zn, float zf )
{
RageMatrix m(
2/(r-l), 0, 0, 0,
0, 2/(t-b), 0, 0,
0, 0, -2/(zf-zn), 0,
-(r+l)/(r-l), -(t+b)/(t-b), -(zf+zn)/(zf-zn), 1 );
return m;
}
void RageDisplay_Null::EndFrame()
{
ProcessStatsOnFlip();
}
+79
View File
@@ -0,0 +1,79 @@
#ifndef RAGEDISPLAY_NULL_H
#define RAGEDISPLAY_NULL_H
class RageDisplay_Null: public RageDisplay
{
public:
RageDisplay_Null();
void Update( float fDeltaTime ) { }
bool IsSoftwareRenderer() { return false; }
void ResolutionChanged() { }
const PixelFormatDesc *GetPixelFormatDesc(PixelFormat pf) const;
void BeginFrame() { }
void EndFrame();
VideoModeParams GetVideoModeParams() const { return m_Params; }
void SetBlendMode( BlendMode mode ) { }
bool SupportsTextureFormat( PixelFormat pixfmt, bool realtime=false ) { return true; }
bool Supports4BitPalettes() { return true; }
unsigned CreateTexture(
PixelFormat pixfmt,
SDL_Surface* img,
bool bGenerateMipMaps ) { return 1; }
void UpdateTexture(
unsigned uTexHandle,
SDL_Surface* img,
int xoffset, int yoffset, int width, int height
) { }
void DeleteTexture( unsigned uTexHandle ) { }
void ClearAllTextures() { }
void SetTexture( int iTextureUnitIndex, RageTexture* pTexture ) { }
void SetTextureModeModulate() { }
void SetTextureModeGlow( GlowMode m=GLOW_WHITEN ) { }
void SetTextureModeAdd() { }
void SetTextureWrapping( bool b ) { }
int GetMaxTextureSize() const { return 2048; }
void SetTextureFiltering( bool b) { }
bool IsZWriteEnabled() const { return false; }
bool IsZTestEnabled() const { return false; }
void SetZWrite( bool b ) { }
void SetZTest( bool b ) { }
void ClearZBuffer() { }
void SetCullMode( CullMode mode ) { }
void SetAlphaTest( bool b ) { }
void SetMaterial(
const RageColor &emissive,
const RageColor &ambient,
const RageColor &diffuse,
const RageColor &specular,
float shininess
) { }
void SetLighting( bool b ) { }
void SetLightOff( int index ) { }
void SetLightDirectional(
int index,
const RageColor &ambient,
const RageColor &diffuse,
const RageColor &specular,
const RageVector3 &dir ) { }
void SetSphereEnironmentMapping( bool b ) { }
void DrawQuads( const RageSpriteVertex v[], int iNumVerts ) { }
void DrawFan( const RageSpriteVertex v[], int iNumVerts ) { }
void DrawStrip( const RageSpriteVertex v[], int iNumVerts ) { }
void DrawTriangles( const RageSpriteVertex v[], int iNumVerts ) { }
void DrawIndexedTriangles( const RageModelVertex v[], int iNumVerts, const Uint16* pIndices, int iNumIndices ) { }
void DrawLineStrip( const RageSpriteVertex v[], int iNumVerts, float LineWidth ) { }
protected:
VideoModeParams m_Params;
CString TryVideoMode( VideoModeParams params, bool &bNewDeviceOut ) { m_Params = params; return ""; }
SDL_Surface* CreateScreenshot();
void SetViewport(int shift_left, int shift_down) { }
RageMatrix GetOrthoMatrix( float l, float r, float b, float t, float zn, float zf );
bool SupportsSurfaceFormat( PixelFormat pixfmt ) { return true; }
};
#endif
+4
View File
@@ -351,6 +351,8 @@ static void CheckSettings()
#include "RageDisplay_OGL.h" #include "RageDisplay_OGL.h"
#endif #endif
#include "RageDisplay_Null.h"
#include "archutils/Win32/VideoDriverInfo.h" #include "archutils/Win32/VideoDriverInfo.h"
static const CString D3DURL = "http://search.microsoft.com/gomsuri.asp?n=1&c=rp_BestBets&siteid=us&target=http://www.microsoft.com/downloads/details.aspx?FamilyID=a19bed22-0b25-4e5d-a584-6389d8a3dad0&displaylang=en"; static const CString D3DURL = "http://search.microsoft.com/gomsuri.asp?n=1&c=rp_BestBets&siteid=us&target=http://www.microsoft.com/downloads/details.aspx?FamilyID=a19bed22-0b25-4e5d-a584-6389d8a3dad0&displaylang=en";
@@ -653,6 +655,8 @@ RageDisplay *CreateDisplay()
}; };
#endif #endif
} }
else if( sRenderer.CompareNoCase("null")==0 )
return new RageDisplay_Null();
else else
RageException::Throw("Unknown video renderer value: %s", sRenderer.c_str() ); RageException::Throw("Unknown video renderer value: %s", sRenderer.c_str() );
} }