81c829ec4c
This was SVN commit r1217.
48 lines
1.1 KiB
C++
Executable File
48 lines
1.1 KiB
C++
Executable File
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Name: TransparencyRenderer.h
|
|
// Author: Rich Cross
|
|
// Contact: rich@wildfiregames.com
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __TRANSPARENCYRENDERER_H
|
|
#define __TRANSPARENCYRENDERER_H
|
|
|
|
#include <vector>
|
|
|
|
class CModel;
|
|
|
|
class CTransparencyRenderer
|
|
{
|
|
public:
|
|
struct SObject {
|
|
// the transparent model
|
|
CModel* m_Model;
|
|
// sqrd distance from camera to centre of nearest triangle
|
|
float m_Dist;
|
|
};
|
|
|
|
public:
|
|
// add object to render in deferred transparency pass
|
|
void Add(CModel* model);
|
|
// render all deferred objects
|
|
void Render();
|
|
// render shadows from all deferred objects
|
|
void RenderShadows();
|
|
// coarsely sort submitted objects in back to front manner
|
|
void Sort();
|
|
// empty object list
|
|
void Clear();
|
|
|
|
private:
|
|
// render given streams on all objects
|
|
void RenderObjectsStreams(u32 streamflags,u32 mflags=0);
|
|
// list of transparent objects to render
|
|
std::vector<SObject> m_Objects;
|
|
};
|
|
|
|
extern CTransparencyRenderer g_TransparencyRenderer;
|
|
|
|
#endif
|