⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commonhw.h

📁 PDE simulator on GPU.
💻 H
字号:
// Common.h: interface for the CCommon class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COMMON_H__E04F4E78_CC40_43CB_9D55_9A0F89C85048__INCLUDED_)
#define AFX_COMMON_H__E04F4E78_CC40_43CB_9D55_9A0F89C85048__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "extgl.h"

//////////////////////////////////////////////////////////////////////////
//////Just Define some global variables for the whole system
//////Use this file to control the debug process
const GLenum    g_TextureTarget = GL_TEXTURE_RECTANGLE_NV;//GL_TEXTURE_2D; //
const bool		g_Float = true; //false
const int		g_ChannelsNum = 1; //4

//////////////////////////////////////////////////////////////////////////
const int DIM_SCALE = 16;
const int DIM_TEST = DIM_SCALE*DIM_SCALE;

//////////////////////////////////////////////////////////////////////////
extern LARGE_INTEGER startcounter, endcounter, frequency;
extern float        time_cost;

//////////////////////////////////////////////////////////////////////////
#define TEST_RESULT_START  QueryPerformanceCounter(&startcounter);
#define TEST_RESULT_END    QueryPerformanceCounter(&endcounter);\
		time_cost = ( (float)(endcounter.QuadPart - startcounter.QuadPart) /(float)frequency.QuadPart ) *1000;\

//////////////////////////////////////////////////////////////////////////
/////Operator Types
enum OperationOnGPUEnum{
					    CL_VECT_ADD_VECT_RECT, 
						CL_VECT_SUB_VECT_RECT, 
						CL_VECT_MULT_VECT_RECT,
					    CL_VECT_MAX_RECT, 
						CL_VECT_MIN_RECT, 
						CL_VECT_NORMAL_RECT, 					    
						CL_DENSE_MAT_VECT_RECT, 
						CL_MULTI_DENSE_MAT_VECT_RECT,
						CL_MULTI_DENSE_MAT_VECT_MULTITEX_RECT,
					    CL_BOLZ_SPARSE_MAT_VECT,
						CL_BOLZ_SPARSE_MAT_VECT_LAST,
					    CL_MULTI_BOLZ_SPARSE_MAT_VECT,
						CL_MULTI_BOLZ_SPARSE_MAT_VECT_LAST,
						CL_BROOK_SPARSE_MAT_VECT,
						CL_MULTI_BROOK_SPARSE_MAT_VECT,
						CL_KRUGER_SPARSE_MAT_VECT,
						CL_SORT_VECTOR_RECT,						
						CL_DENSE_MAT_MAT_RECT,
						CL_VECT_ADD_VECT_2D, 
						CL_VECT_SUB_VECT_2D, 
						CL_VECT_MULT_VECT_2D, 
                        CL_VECT_MAX_2D, 
						CL_VECT_MIN_2D, 
						CL_VECT_NORMAL_2D,
						CL_DENSE_MAT_MAT_2D,
						CL_DENSE_MAT_VECT_2D}; 
//////////////////////////////////////////////////////////////////////////
struct FragmentShaderID
{
	char FileName[100];
	unsigned int ShaderID;
};
extern FragmentShaderID GlobeShaderID[50];

//////////////////////////////////////////////////////////////////////////
/// Find out the Resouse Limit on Current Hardware
/// void FindOutResourceLimitOnCurrentHW();
//////////////////////////////////////////////////////////////////////////
struct XMaxProgramResourceStruct
{
	int MaxInstructionsNum;
	int MaxNativeInstructionsNum;
	int MaxTemporariesNum;
	int MaxNativeTemporariesNum;
	int MaxParametersNum;
	int MaxNativeParametersNum;
	int MaxAttribsNum;
	int MaxNativeAttribsNum;
	int MaxLocalParametersNum;
	
	int MaxEnvParametersNum;
	int MaxAluInstructionsNum;
	int MaxTexInstructionsNum;
	int MaxTexIndirectionsNum;
	int MaxNativeAluInstructionsNum;
	int MaxNativeTexInstructionsNum;
	int MaxNativeTexIndirectionsNum;

};
struct XMaxResourceStruct {
	XMaxProgramResourceStruct VertexProgram;
	XMaxProgramResourceStruct FragmentProgram;
	int MaxTexUnitsNum;
	int MaxTexCoordsNum;
	int MaxTexImageUnitsNum;
};

extern XMaxResourceStruct ResourceLimitOnCurrentHW;

//////////////////////////////////////////////////////////////////////////
void LoadFragmentProgramFiles();
void FindOutResourceLimitOnCurrentHW();

//////////////////////////////////////////////////////////////////////////
int PowOf2(int x);
int CalTexSize(const int TotalSize);
void CalOptTexRSize(const int TotalSize, int& Height, int& Width);
void CalOptTexRGBASize(const int TotalSize, int& Height, int& Width);
//////////////////////////////////////////////////////////////////////////

#endif // !defined(AFX_COMMON_H__E04F4E78_CC40_43CB_9D55_9A0F89C85048__INCLUDED_)

⌨️ 快捷键说明

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