1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#ifndef SKY_BOX_H
#define SKY_BOX_H
#include <string>
#include "ISky.h"
#include "Map/MapTexture.h"
#include "Rendering/GL/RenderDataBuffer.hpp"
class CSkyBox : public ISky
{
public:
CSkyBox(const std::string& texture);
~CSkyBox();
void Update() override {}
void UpdateSunDir() override {}
void UpdateSkyTexture() override {}
void Draw(Game::DrawMode mode) override;
void DrawSun(Game::DrawMode mode) override {}
void SetLuaTexture(const MapTextureData& td) override
{
skyTex.SetLuaTexture(td);
}
private:
void LoadTexture(const std::string& texture);
void LoadBuffer();
private:
struct SkyBoxVertType {
float2 xy;
float3 tc;
};
typedef Shader::ShaderInput SkyBoxAttrType;
typedef GL::TRenderDataBuffer<SkyBoxVertType> SkyBoxBuffer;
MapTexture skyTex;
SkyBoxBuffer skyBox;
SkyBoxVertType* vtxPtr = nullptr;
SkyBoxVertType* vtxPos = nullptr;
};
#endif // SKY_BOX_H
|