File: CubeMapHandler.h

package info (click to toggle)
spring 105.0.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 108,860 kB
  • sloc: cpp: 467,785; ansic: 302,607; python: 12,925; java: 12,201; awk: 5,889; sh: 2,371; xml: 655; perl: 405; php: 276; objc: 194; makefile: 75; sed: 2
file content (55 lines) | stat: -rw-r--r-- 1,519 bytes parent folder | download | duplicates (3)
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
54
55
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */

#ifndef CUBEMAP_HANDLER_HDR
#define CUBEMAP_HANDLER_HDR

#include "Rendering/GL/FBO.h"

class CubeMapHandler {
public:
	CubeMapHandler(): reflectionCubeFBO(true) {}

	bool Init();
	void Free();

	void UpdateReflectionTexture();

	unsigned int GetEnvReflectionTextureID() const { return envReflectionTexID; }
	unsigned int GetSkyReflectionTextureID() const { return skyReflectionTexID; }
	unsigned int GetReflectionTextureSize() const { return reflectionTexSize; }

private:
	void CreateReflectionFace(unsigned int, bool);

	unsigned int envReflectionTexID; // sky and map
	unsigned int skyReflectionTexID; // sky only

	unsigned int reflectionTexSize;
	unsigned int currReflectionFace;

	bool mapSkyReflections;
	bool generateMipMaps;

	FBO reflectionCubeFBO;

	const float3 faceDirs[6][3] = {
		{ RgtVector,  FwdVector,   UpVector}, // fwd = +x, right = +z, up = +y
		{-RgtVector, -FwdVector,   UpVector}, // fwd = -x
		{  UpVector,  RgtVector, -FwdVector}, // fwd = +y
		{ -UpVector,  RgtVector,  FwdVector}, // fwd = -y
		{ FwdVector, -RgtVector,   UpVector}, // fwd = +z
		{-FwdVector,  RgtVector,   UpVector}, // fwd = -z
	};
	const float4 faceColors[6] = {
		{1.0f, 0.0f, 0.0f, 1.0f}, // red
		{0.0f, 1.0f, 0.0f, 1.0f}, // green
		{0.0f, 0.0f, 1.0f, 1.0f}, // blue
		{1.0f, 1.0f, 0.0f, 1.0f}, // yellow
		{1.0f, 0.0f, 1.0f, 1.0f}, // purple
		{0.0f, 1.0f, 1.0f, 1.0f}, // cyan
	};
};

extern CubeMapHandler cubeMapHandler;

#endif