port from perforce
This commit is contained in:
171
evoke-64k/bp10/renderjob.h
Normal file
171
evoke-64k/bp10/renderjob.h
Normal file
@@ -0,0 +1,171 @@
|
||||
#pragma once
|
||||
|
||||
/***********************************************************************************/
|
||||
/** \file Renderjob.h
|
||||
** \brief Header File zur Klasse Renderjob
|
||||
*************************************************************************************
|
||||
** Autor: Christian Roesch
|
||||
*************************************************************************************
|
||||
** _tut nichts_
|
||||
**
|
||||
*//*********************************************************************************/
|
||||
|
||||
#ifndef _Renderjob_H
|
||||
#define _Renderjob_H
|
||||
|
||||
// includes
|
||||
#include <d3dx9.h>
|
||||
|
||||
#include <cassert>
|
||||
|
||||
// Klassen-Deklaration
|
||||
extern IDirect3DDevice9* g_d3d_device;
|
||||
|
||||
/***********************************************************************************/
|
||||
/** \brief Renderjob _tut nichts_
|
||||
*************************************************************************************
|
||||
** Genau genommen _tut dies nichts_
|
||||
**
|
||||
*//*********************************************************************************/
|
||||
|
||||
class Renderjob
|
||||
{
|
||||
public:
|
||||
static const int MaxRenderLayerCount = 8;
|
||||
|
||||
void Init();
|
||||
void InitFullScreenQuad();
|
||||
|
||||
void DeInit();
|
||||
|
||||
struct SVertex
|
||||
{
|
||||
FLOAT x, y, z;
|
||||
FLOAT nx, ny, nz;
|
||||
DWORD dwColor;
|
||||
FLOAT tu, tv;
|
||||
};
|
||||
|
||||
static const DWORD c_dwFVF=D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE|D3DFVF_TEX1;
|
||||
|
||||
void DrawCall();
|
||||
void Render();
|
||||
void PreRender();
|
||||
void RenderSky();
|
||||
void RenderSkyDepth();
|
||||
|
||||
void Create( int iVertCount, int iIndexCount, bool bDynamic = false );
|
||||
|
||||
void Release();
|
||||
|
||||
void Lock();
|
||||
void LockVertexOnly();
|
||||
void Unlock();
|
||||
|
||||
void HideVertexData();
|
||||
|
||||
int GetVertCount();
|
||||
void AddVertex( const SVertex& v );
|
||||
void AddIndex( WORD Index );
|
||||
|
||||
void AddTriangle( const D3DXVECTOR3& vec1,
|
||||
const D3DXVECTOR3& vec2,
|
||||
const D3DXVECTOR3& vec3,
|
||||
DWORD dwColor );
|
||||
|
||||
void AddQuadFlat( const D3DXVECTOR3& vec1,
|
||||
const D3DXVECTOR3& vec2,
|
||||
const D3DXVECTOR3& vec3,
|
||||
const D3DXVECTOR3& vec4,
|
||||
DWORD dwColor );
|
||||
void AddQuadTex( const D3DXVECTOR3& vec1,
|
||||
const D3DXVECTOR3& vec2,
|
||||
const D3DXVECTOR3& vec3,
|
||||
const D3DXVECTOR3& vec4,
|
||||
float fTex[ 4 ],
|
||||
DWORD dwColor );
|
||||
|
||||
void AddCylinder( const D3DXVECTOR3& vecCenter,
|
||||
const D3DXVECTOR3& vecRot,
|
||||
float radius,
|
||||
float height,
|
||||
bool upperCap,
|
||||
bool lowerCap,
|
||||
DWORD dwColor);
|
||||
|
||||
void AddGround( const D3DXVECTOR3& vecCenter,
|
||||
const D3DXVECTOR3& vecExtent,
|
||||
const D3DXVECTOR3& vecRot,
|
||||
DWORD dwColor,
|
||||
float fInnerRadius,
|
||||
float fOuterRadius,
|
||||
float fFrequency,
|
||||
float fAmplitude,
|
||||
int iResX,
|
||||
int iResY );
|
||||
|
||||
void AddBox( const D3DXVECTOR3& vecCenter,
|
||||
const D3DXVECTOR3& vecExtent,
|
||||
const D3DXVECTOR3& vecRot,
|
||||
DWORD dwColor );
|
||||
void AddBox( const D3DXVECTOR3& vecCenter,
|
||||
const D3DXVECTOR3& vecExtent,
|
||||
const D3DXVECTOR3& vecRot,
|
||||
DWORD dwColor,
|
||||
float fTU, float fTV );
|
||||
|
||||
void AddRainbow( const D3DXVECTOR3& vecCenter,
|
||||
float fRadiusInner,
|
||||
float fRadiusOuter,
|
||||
float fWidth,
|
||||
float fStartAngle,
|
||||
float fEndAngle,
|
||||
const D3DXVECTOR3& vecRot );
|
||||
|
||||
void CreateTextMesh(const char* pcText );
|
||||
|
||||
void SetTransformation( const D3DXMATRIX& mat);
|
||||
|
||||
int m_iUsedShader[MaxRenderLayerCount];
|
||||
int m_iUsedPreShader; // -1 kein Shader
|
||||
// -2 kein Prepass
|
||||
// 0 - n entsprechenden Shader fuer den Prepass
|
||||
|
||||
bool m_bAlphaEnable[MaxRenderLayerCount];
|
||||
D3DBLENDOP m_BlendOp[MaxRenderLayerCount];
|
||||
D3DBLEND m_SrcBlend[MaxRenderLayerCount];
|
||||
D3DBLEND m_DestBlend[MaxRenderLayerCount];
|
||||
|
||||
friend struct Flock;
|
||||
|
||||
private:
|
||||
int m_iVertCount;
|
||||
|
||||
IDirect3DVertexBuffer9* m_pVB;
|
||||
int m_iSafeVertMem;
|
||||
|
||||
SVertex* m_pLockVertex;
|
||||
|
||||
int m_iIndexCount;
|
||||
|
||||
IDirect3DIndexBuffer9* m_pIB;
|
||||
int m_iSafeIndexMem;
|
||||
|
||||
WORD* m_pLockIndex;
|
||||
|
||||
bool m_bDynamic;
|
||||
|
||||
ID3DXMesh* m_pMesh;
|
||||
|
||||
D3DXMATRIX m_Transform;
|
||||
D3DXMATRIX m_TransformInverse;
|
||||
};
|
||||
|
||||
#endif//_Renderjob_H
|
||||
|
||||
class Renderjob;
|
||||
|
||||
|
||||
/************************************************************************************
|
||||
** Ende der Datei: Renderjob.h
|
||||
************************************************************************************/
|
||||
Reference in New Issue
Block a user