advsky.h

来自「这是整套横扫千军3D版游戏的源码」· C头文件 代码 · 共 83 行

H
83
字号
// Sky.h: interface for the CSky class.
//
//////////////////////////////////////////////////////////////////////

#ifndef __ADV_SKY_H__
#define __ADV_SKY_H__

#include "Rendering/GL/myGL.h"
#include "BaseSky.h"

class CAdvSky : public CBaseSky
{
public:
	CAdvSky();
	virtual ~CAdvSky();
	void CreateCover(int baseX,int baseY,float* buf);
	void InitSun();
	void CreateTransformVectors();
	void CreateRandMatrix(int matrix[32][32],float mod);
	void CreateRandDetailMatrix(unsigned char* matrix,int size);
	void DrawShafts();
	void ResetCloudShadow(int texunit);
	void SetCloudShadow(int texunit);
	void CreateClouds();
	void Update();
	void DrawSun();
	void Draw();
	float3 GetCoord(int x,int y);
	void CreateDetailTex(void);

	GLuint skyTex;
	GLuint skyDot3Tex;
	GLuint cloudDot3Tex;
	unsigned int displist;

	GLuint sunTex;
	GLuint sunFlareTex;
	unsigned int sunFlareList;
	GLuint cdtex;

	unsigned int cloudFP;

	int randMatrix[16][32][32];

	unsigned char alphaTransform[1024];
	unsigned char thicknessTransform[1024];

	int lastCloudUpdate;
	bool cloudDown[10];
	bool drawFlare;

	GLuint detailTextures[12];
	bool cloudDetailDown[5];

	unsigned char *cloudThickness2;
	unsigned char *cloudTexMem;

	float covers[4][32];
	int oldCoverBaseX;
	int oldCoverBaseY;

	float3 sundir1;
	float3 sundir2;

	float3 modSunDir;

	float domeheight;
	float domeWidth;

	float3 GetDirFromTexCoord(float x, float y);
	float GetTexCoordFromDir(float3 dir);

	float sunTexCoordX,sunTexCoordY;

	float3 skyColor;
	float3 sunColor;
	float3 cloudColor;
	float fogStart;
};

#endif // __ADV_SKY_H__

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?