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 } options;
00026
00027 public:
00030 static void debugs(char *s);
00031 int getOption(TCHAR* name,int defaultVal, bool isBool);
00033
00036 UBOOL Init(UViewport *InViewport,INT NewX, INT NewY, INT NewColorBytes, UBOOL Fullscreen);
00037 UBOOL SetRes(INT NewX, INT NewY, INT NewColorBytes, UBOOL Fullscreen);
00038 void Exit();
00039 #if UNREALGOLD || UNREAL
00040 void Flush();
00041 #else
00042 void Flush(UBOOL AllowPrecache);
00043 #endif
00044 void Lock(FPlane FlashScale, FPlane FlashFog, FPlane ScreenClear, DWORD RenderLockFlags, BYTE* HitData, INT* HitSize );
00045 void Unlock(UBOOL Blit );
00046 void DrawComplexSurface(FSceneNode* Frame, FSurfaceInfo& Surface, FSurfaceFacet& Facet );
00047 void DrawGouraudPolygon( FSceneNode* Frame, FTextureInfo& Info, FTransTexture** Pts, int NumPts, DWORD PolyFlags, FSpanBuffer* Span );
00048 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 );
00049 void Draw2DLine( FSceneNode* Frame, FPlane Color, DWORD LineFlags, FVector P1, FVector P2 );
00050 void Draw2DPoint( FSceneNode* Frame, FPlane Color, DWORD LineFlags, FLOAT X1, FLOAT Y1, FLOAT X2, FLOAT Y2, FLOAT Z );
00051 void ClearZ( FSceneNode* Frame );
00052 void PushHit( const BYTE* Data, INT Count );
00053 void PopHit( INT Count, UBOOL bForce );
00054 void GetStats( TCHAR* Result );
00055 void ReadPixels( FColor* Pixels );
00057
00060 UBOOL Exec(const TCHAR* Cmd, FOutputDevice& Ar);
00061 void SetSceneNode( FSceneNode* Frame );
00062 void PrecacheTexture( FTextureInfo& Info, DWORD PolyFlags );
00063 void EndFlash();
00064 void StaticConstructor();
00065 #ifdef UNREAL
00066 void Precache(ULevel* Level);
00067 #endif
00068
00069
00070 #ifdef RUNE
00071
00073 void DrawFogSurface(FSceneNode* Frame, FFogSurf &FogSurf);
00074 void PreDrawGouraud(FSceneNode *Frame, FLOAT FogDistance, FPlane FogColor);
00075 void PostDrawGouraud(FLOAT FogDistance);
00077 #endif
00078 };