📄 commonhw.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 + -