图形部分增加名字空间graph

This commit is contained in:
hyzboy 2018-11-30 19:38:36 +08:00
parent 382584a81e
commit 8ea38d734d
5 changed files with 737 additions and 724 deletions

View File

@ -6,6 +6,7 @@
#include<hgl/math/Math.h>
using namespace hgl;
using namespace hgl::graph;
constexpr uint screen_width=1280;
constexpr uint screen_height=720;

View File

@ -8,6 +8,8 @@
// #include<hgl/graph/SSBO.h>
namespace hgl
{
namespace graph
{
constexpr uint HGL_MAX_SHADER_NAME_LENGTH=128; ///<最大Shader名称长度
/**
@ -45,16 +47,16 @@ namespace hgl
Map<UTF8String,int> attrib_location;
Map<UTF8String,int> uniform_location;
// Map<UTF8String,int> uniform_block_index;
// MapObject<UTF8String,UBO> uniform_block_object;
//
// Map<UTF8String,int> ssbo_index;
// MapObject<UTF8String,SSBO> ssbo_object;
// Map<UTF8String,int> uniform_block_index;
// MapObject<UTF8String,UBO> uniform_block_object;
//
// Map<UTF8String,int> ssbo_index;
// MapObject<UTF8String,SSBO> ssbo_object;
int _GetAttribLocation(const char *); ///<取得指定属性地址
int _GetUniformLocation(const char *); ///<取得一个变量的地址
// int _GetUniformBlockIndex(const char *); ///<取得一个只读数据块的地址索引
// int _GetShaderStorageIndex(const char *); ///<取得一个数据存储区的地址索引
// int _GetUniformBlockIndex(const char *); ///<取得一个只读数据块的地址索引
// int _GetShaderStorageIndex(const char *); ///<取得一个数据存储区的地址索引
public:
@ -83,8 +85,8 @@ namespace hgl
int GetAttribLocation(const char *); ///<取得指定属性地址
int GetUniformLocation(const char *); ///<取得一个变量的地址
// int GetUniformBlockIndex(const char *); ///<取得一个只读数据块索引
// int GetShaderStorageIndex(const char *); ///<取得一个数据存储区索引
// int GetUniformBlockIndex(const char *); ///<取得一个只读数据块索引
// int GetShaderStorageIndex(const char *); ///<取得一个数据存储区索引
//bool SetAttrib1f(int,float);
//bool GetAttrib1f(int,float &);
@ -191,5 +193,6 @@ namespace hgl
// UBO *GetUniformBlock(const char *,uint=HGL_DYNAMIC_DRAW);
// SSBO *GetShaderStorage(const char *,uint=HGL_DYNAMIC_DRAW);
};//class Shader
}//namespace graph
}//namespace hgl
#endif//HGL_SHADER_INCLUDE

View File

@ -1,7 +1,9 @@
#include<hgl/graph/RenderDriver.h>
#include<hgl/graph/RenderDriver.h>
namespace hgl
{
namespace graph
{
class RenderDriverGLCore:public RenderDriver
{
public:
@ -18,4 +20,5 @@ namespace hgl
{
}
};//class RenderDriverGLCore:public RenderDriver
}//namespace graph
}//namespace hgl

View File

@ -1,4 +1,4 @@
#include<hgl/graph/Shader.h>
#include<hgl/graph/Shader.h>
//#include<hgl/LogInfo.h>
#include<hgl/type/Smart.h>
#include<malloc.h>
@ -6,6 +6,8 @@
namespace hgl
{
namespace graph
{
namespace
{
constexpr uint OpenGLShaderType[ShaderType::stEnd]=
@ -63,7 +65,7 @@ namespace hgl
glGetShaderInfoLog(shader,log_length,&char_writen,log);
// LOG_HINT(UTF8String(name)+U8_TEXT(" shader compile error\n\n")+ UTF8String(log));
// LOG_HINT(UTF8String(name)+U8_TEXT(" shader compile error\n\n")+ UTF8String(log));
delete[] log;
@ -146,7 +148,7 @@ namespace hgl
glGetProgramInfoLog(program,log_length,&char_written,log);
// LOG_ERROR(u8"Shader program link error\n\n"+UTF8String(log));
// LOG_ERROR(u8"Shader program link error\n\n"+UTF8String(log));
delete[] log;
@ -173,7 +175,7 @@ namespace hgl
{
if(!program)
{
// LOG_ERROR(u8"GetAttribLocation("+UTF8String(name)+u8"),program=0");
// LOG_ERROR(u8"GetAttribLocation("+UTF8String(name)+u8"),program=0");
return(-1);
}
@ -210,7 +212,7 @@ namespace hgl
{
if(!program)
{
// LOG_ERROR(u8"GetUniformLocation("+UTF8String(name)+u8"),program=0");
// LOG_ERROR(u8"GetUniformLocation("+UTF8String(name)+u8"),program=0");
return(-1);
}
@ -220,7 +222,7 @@ namespace hgl
{
const int gl_error=glGetError();
// LOG_ERROR(u8"GetUniformLocation("+UTF8String(name)+u8"),program="+UTF8String(program)+u8",result=-1,gl_error="+UTF8String(gl_error));
// LOG_ERROR(u8"GetUniformLocation("+UTF8String(name)+u8"),program="+UTF8String(program)+u8",result=-1,gl_error="+UTF8String(gl_error));
}
return(result);
@ -353,41 +355,42 @@ namespace hgl
#undef HGL_GLSL_SetUniformMatrixPointer
// int Shader::_GetUniformBlockIndex(const char *uniform_block_name)
// {
// if(!program)
// {
// // LOG_ERROR(u8"Shader::_GetUniformBlockIndex("+UTF8String(uniform_block_name)+") program=0");
// return(-1);
// }
//
// const int index=glGetUniformBlockIndex(program,uniform_block_name);
//
// if(index<0)
// {
// // LOG_ERROR(u8"Shader::_GetUniformBlockIndex("+UTF8String(uniform_block_name)+") block_index error");
// return(-1);
// }
//
// return index;
// }
//
// int Shader::_GetShaderStorageIndex(const char *ssbo_name)
// {
// if(!program)
// {
// // LOG_ERROR(u8"Shader::_GetShaderStorageIndex("+UTF8String(ssbo_name)+") program=0");
// return(-1);
// }
//
// const int index=glGetProgramResourceIndex(program,GL_SHADER_STORAGE_BLOCK,ssbo_name);
//
// if(index<0)
// {
// // LOG_ERROR(u8"Shader::_GetShaderStorageIndex("+UTF8String(ssbo_name)+") block_index error");
// return(-1);
// }
//
// return index;
// }
// int Shader::_GetUniformBlockIndex(const char *uniform_block_name)
// {
// if(!program)
// {
// // LOG_ERROR(u8"Shader::_GetUniformBlockIndex("+UTF8String(uniform_block_name)+") program=0");
// return(-1);
// }
//
// const int index=glGetUniformBlockIndex(program,uniform_block_name);
//
// if(index<0)
// {
// // LOG_ERROR(u8"Shader::_GetUniformBlockIndex("+UTF8String(uniform_block_name)+") block_index error");
// return(-1);
// }
//
// return index;
// }
//
// int Shader::_GetShaderStorageIndex(const char *ssbo_name)
// {
// if(!program)
// {
// // LOG_ERROR(u8"Shader::_GetShaderStorageIndex("+UTF8String(ssbo_name)+") program=0");
// return(-1);
// }
//
// const int index=glGetProgramResourceIndex(program,GL_SHADER_STORAGE_BLOCK,ssbo_name);
//
// if(index<0)
// {
// // LOG_ERROR(u8"Shader::_GetShaderStorageIndex("+UTF8String(ssbo_name)+") block_index error");
// return(-1);
// }
//
// return index;
// }
}//namespace graph
}//namespace hgl

View File

@ -1,8 +1,10 @@
#include<hgl/graph/Shader.h>
#include<hgl/graph/Shader.h>
//#include<hgl/graph/UBO.h>
namespace hgl
{
namespace graph
{
/**
*
* @param name
@ -47,49 +49,49 @@ namespace hgl
return result;
}
// /**
// * 取得一个Shader只读数据区索引
// * @param name 数据区名称
// * @return 数据区索引
// * @return -1 出错
// */
// int Shader::GetUniformBlockIndex(const char *name)
// {
// if(!name||!(*name))return(-1);
//
// int result;
//
// if(!uniform_block_index.Get(name,result))
// {
// result=_GetUniformBlockIndex(name);
//
// uniform_block_index.Add(name,result);
// }
//
// return result;
// }
//
// /**
// * 取得一个Shader数据存储区索引
// * @param name 数据存储区名称
// * @return 数据存储区索引
// * @return -1 出错
// */
// int Shader::GetShaderStorageIndex(const char *name)
// {
// if(!name||!(*name))return(-1);
//
// int result;
//
// if(!ssbo_index.Get(name,result))
// {
// result=_GetShaderStorageIndex(name);
//
// ssbo_index.Add(name,result);
// }
//
// return result;
// }
// /**
// * 取得一个Shader只读数据区索引
// * @param name 数据区名称
// * @return 数据区索引
// * @return -1 出错
// */
// int Shader::GetUniformBlockIndex(const char *name)
// {
// if(!name||!(*name))return(-1);
//
// int result;
//
// if(!uniform_block_index.Get(name,result))
// {
// result=_GetUniformBlockIndex(name);
//
// uniform_block_index.Add(name,result);
// }
//
// return result;
// }
//
// /**
// * 取得一个Shader数据存储区索引
// * @param name 数据存储区名称
// * @return 数据存储区索引
// * @return -1 出错
// */
// int Shader::GetShaderStorageIndex(const char *name)
// {
// if(!name||!(*name))return(-1);
//
// int result;
//
// if(!ssbo_index.Get(name,result))
// {
// result=_GetShaderStorageIndex(name);
//
// ssbo_index.Add(name,result);
// }
//
// return result;
// }
#define HGL_GLSL_SetUniform1234(func,type) bool Shader::SetUniform1##func(const char *uniform_name,type v0) \
{ \
@ -180,71 +182,72 @@ namespace hgl
#undef HGL_GLSL_SetUniformMatrixPointer
// /**
// * 取得一个Shader只读数据区的访问对象
// * @param name 对象名称
// * @param level 访问级别
// * @return 对象指针
// */
// UBO *Shader::GetUniformBlock(const char *name,uint level)
// {
// if(!name||!(*name))
// {
// LOG_ERROR(U8_TEXT("UBO name error:"));
// return(nullptr);
// }
//
// UBO *ubo=uniform_block_object[name];
//
// if(ubo)
// return ubo;
//
// const int index=GetUniformBlockIndex(name);
//
// if(index<0)
// {
// LOG_ERROR(U8_TEXT("UBO name error:")+UTF8String(name));
// return(nullptr);
// }
//
// ubo=new UBO(name,program,index,level);
//
// uniform_block_object.Add(name,ubo);
//
// return ubo;
// }
//
// /**
// * 取得一个Shader数据存储区的访问对象
// * @param name 对象名称
// * @param level 访问级别
// * @return 对象指针
// */
// SSBO *Shader::GetShaderStorage(const char *name,uint level)
// {
// if(!name||!(*name))
// {
// LOG_ERROR(U8_TEXT("SSBO name error:"));
// return(nullptr);
// }
//
// SSBO *ssbo=ssbo_object[name];
//
// if(ssbo)
// return ssbo;
//
// const int index=GetShaderStorageIndex(name);
//
// if(index<0)
// {
// LOG_ERROR(U8_TEXT("SSBO name error:")+UTF8String(name));
// return(nullptr);
// }
//
// ssbo=new SSBO(name,program,index,level);
//
// ssbo_object.Add(name,ssbo);
//
// return ssbo;
// }
// /**
// * 取得一个Shader只读数据区的访问对象
// * @param name 对象名称
// * @param level 访问级别
// * @return 对象指针
// */
// UBO *Shader::GetUniformBlock(const char *name,uint level)
// {
// if(!name||!(*name))
// {
// LOG_ERROR(U8_TEXT("UBO name error:"));
// return(nullptr);
// }
//
// UBO *ubo=uniform_block_object[name];
//
// if(ubo)
// return ubo;
//
// const int index=GetUniformBlockIndex(name);
//
// if(index<0)
// {
// LOG_ERROR(U8_TEXT("UBO name error:")+UTF8String(name));
// return(nullptr);
// }
//
// ubo=new UBO(name,program,index,level);
//
// uniform_block_object.Add(name,ubo);
//
// return ubo;
// }
//
// /**
// * 取得一个Shader数据存储区的访问对象
// * @param name 对象名称
// * @param level 访问级别
// * @return 对象指针
// */
// SSBO *Shader::GetShaderStorage(const char *name,uint level)
// {
// if(!name||!(*name))
// {
// LOG_ERROR(U8_TEXT("SSBO name error:"));
// return(nullptr);
// }
//
// SSBO *ssbo=ssbo_object[name];
//
// if(ssbo)
// return ssbo;
//
// const int index=GetShaderStorageIndex(name);
//
// if(index<0)
// {
// LOG_ERROR(U8_TEXT("SSBO name error:")+UTF8String(name));
// return(nullptr);
// }
//
// ssbo=new SSBO(name,program,index,level);
//
// ssbo_object.Add(name,ssbo);
//
// return ssbo;
// }
}//namespace graph
}//namespace hgl