Added debugging macro for GL calls

Activated octree culling logic as a default
Wide spread bug fixes related to occlusion culling and GPU resource management
Implemented logic to automatically enable alpha blending for materials that do not contain an alpha blending statement but have a material-level opacity value set less than 1.0
Extended the krobject file format to 256 characters for material names.
Added logic to prevent exported krobject files from being corrupted when long material names are used.

--HG--
extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%4096
This commit is contained in:
kearwood
2012-09-13 20:09:19 +00:00
parent 763e8b8fe7
commit 917c4221ea
33 changed files with 659 additions and 585 deletions

View File

@@ -33,7 +33,7 @@
#define KRMODELMANAGER_H
#define KRENGINE_MAX_VBO_HANDLES 1000
#define KRENGINE_MAX_VBO_MEM 100000000
#define KRENGINE_MAX_VBO_MEM 50000000
#import "KREngine-common.h"
#import "KRContextObject.h"
@@ -51,6 +51,8 @@ public:
KRModelManager(KRContext &context);
virtual ~KRModelManager();
void rotateBuffers();
KRModel *loadModel(const char *szName, KRDataBlock *pData);
KRModel *getModel(const char *szName);
KRModel *getFirstModel();
@@ -59,7 +61,8 @@ public:
std::map<std::string, KRModel *> getModels();
void bindVBO(const GLvoid *data, GLsizeiptr size);
void bindVBO(GLvoid *data, GLsizeiptr size);
void unbindVBO();
long getMemUsed();
private:
@@ -68,14 +71,14 @@ private:
typedef struct vbo_info {
GLuint handle;
GLsizeiptr size;
const GLvoid *data;
GLvoid *data;
} vbo_info_type;
long m_vboMemUsed;
vbo_info_type m_currentVBO;
std::map<const GLvoid *, vbo_info_type> m_vbos;
std::map<GLvoid *, vbo_info_type> m_vbosActive;
std::map<GLvoid *, vbo_info_type> m_vbosPool;
};