00001
00005 #pragma once
00006 #include "Engine.h"
00007 #include "UnRender.h"
00008 #include "d3d.h"
00009 class UD3D10RenderDevice:public URenderDevice
00010 {
00011
00012
00013 #if (UNREALTOURNAMENT || RUNE)
00014 DECLARE_CLASS(UD3D10RenderDevice,URenderDevice,CLASS_Config,D3D10Drv)
00015 #else
00016 DECLARE_CLASS(UD3D10RenderDevice,URenderDevice,CLASS_Config)
00017 #endif
00018
00019 private:
00020 D3D::Options D3DOptions;
00022 struct
00023 {
00024 int precache;
00025 int autoFOV;
00026 int FPSLimit;
00027 } options;
00028
00029 public:
00032 static void debugs(char *s);
00033 int getOption(TCHAR* name,int defaultVal, bool isBool);
00035
00038 UBOOL Init(UViewport *InViewport,INT NewX, INT NewY, INT NewColorBytes, UBOOL Fullscreen);
00039 UBOOL SetRes(INT NewX, INT NewY, INT NewColorBytes, UBOOL Fullscreen);
00040 void Exit();
00041 #if UNREALGOLD
00042 void Flush();
00043 #else
00044 void Flush(UBOOL AllowPrecache);
00045 #endif
00046 void Lock(FPlane FlashScale, FPlane FlashFog, FPlane ScreenClear, DWORD RenderLockFlags, BYTE* HitData, INT* HitSize );
00047 void Unlock(UBOOL Blit );
00048 void DrawComplexSurface(FSceneNode* Frame, FSurfaceInfo& Surface, FSurfaceFacet& Facet );
00049 void DrawGouraudPolygon( FSceneNode* Frame, FTextureInfo& Info, FTransTexture** Pts, int NumPts, DWORD PolyFlags, FSpanBuffer* Span );
00050 void DrawTile( FSceneNode* Frame, FTextureInfo& Info, FLOAT X, FLOAT Y, FLOAT XL, FLOAT YL, FLOAT U, FLOAT V, FLOAT UL, FLOAT VL, class FSpanBuffer* Span, FLOAT Z, FPlane Color, FPlane Fog, DWORD PolyFlags );
00051 void Draw2DLine( FSceneNode* Frame, FPlane Color, DWORD LineFlags, FVector P1, FVector P2 );
00052 void Draw2DPoint( FSceneNode* Frame, FPlane Color, DWORD LineFlags, FLOAT X1, FLOAT Y1, FLOAT X2, FLOAT Y2, FLOAT Z );
00053 void ClearZ( FSceneNode* Frame );
00054 void PushHit( const BYTE* Data, INT Count );
00055 void PopHit( INT Count, UBOOL bForce );
00056 void GetStats( TCHAR* Result );
00057 void ReadPixels( FColor* Pixels );
00059
00062 UBOOL Exec(const TCHAR* Cmd, FOutputDevice& Ar);
00063 void SetSceneNode( FSceneNode* Frame );
00064 void PrecacheTexture( FTextureInfo& Info, DWORD PolyFlags );
00065 void EndFlash();
00066 void StaticConstructor();
00068
00069 #ifdef RUNE
00070
00072 void DrawFogSurface(FSceneNode* Frame, FFogSurf &FogSurf);
00073 void PreDrawGouraud(FSceneNode *Frame, FLOAT FogDistance, FPlane FogColor);
00074 void PostDrawGouraud(FLOAT FogDistance);
00076 #endif
00077 };