mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-26 23:55:40 +00:00
64 lines
979 B
C++
64 lines
979 B
C++
#ifndef _R3DSCROLLFOG_H_
|
|
#define _R3DSCROLLFOG_H_
|
|
|
|
#include "Util/NewConfig.h"
|
|
#include "VBO.h"
|
|
|
|
namespace New3D {
|
|
|
|
class R3DScrollFog
|
|
{
|
|
public:
|
|
|
|
R3DScrollFog(const Util::Config::Node &config);
|
|
~R3DScrollFog();
|
|
|
|
void DrawScrollFog(float rbga[4], float attenuation, float ambient, float *spotRGB, float *spotEllipse);
|
|
|
|
private:
|
|
|
|
void AllocResources();
|
|
void DeallocResources();
|
|
|
|
const Util::Config::Node &m_config;
|
|
|
|
struct SFVertex
|
|
{
|
|
void Set(float x, float y, float z) {
|
|
v[0] = x;
|
|
v[1] = y;
|
|
v[2] = z;
|
|
}
|
|
|
|
float v[3];
|
|
};
|
|
|
|
struct SFTriangle
|
|
{
|
|
SFVertex p1;
|
|
SFVertex p2;
|
|
SFVertex p3;
|
|
};
|
|
|
|
SFTriangle m_triangles[2];
|
|
|
|
GLuint m_shaderProgram;
|
|
GLuint m_vertexShader;
|
|
GLuint m_fragmentShader;
|
|
|
|
GLint m_locFogColour;
|
|
GLint m_locMVP;
|
|
GLint m_locFogAttenuation;
|
|
GLint m_locFogAmbient;
|
|
GLint m_locSpotFogColor;
|
|
GLint m_locSpotEllipse;
|
|
|
|
// vertex attrib locs
|
|
GLint m_locInVertex;
|
|
|
|
VBO m_vbo;
|
|
};
|
|
|
|
}
|
|
|
|
#endif |