Added #define statements to allow GL calls to compile on OSX
--HG-- extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%40202
This commit is contained in:
@@ -35,10 +35,8 @@ void KRBone::loadXML(tinyxml2::XMLElement *e)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRBone::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass)
|
void KRBone::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass)
|
||||||
{
|
{
|
||||||
|
|
||||||
KRNode::render(pCamera, lights, viewport, renderPass);
|
KRNode::render(pCamera, lights, viewport, renderPass);
|
||||||
|
|
||||||
@@ -63,7 +61,6 @@ void KRBone::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRV
|
|||||||
GLDEBUG(glEnable(GL_DEPTH_TEST));
|
GLDEBUG(glEnable(GL_DEPTH_TEST));
|
||||||
GLDEBUG(glDepthFunc(GL_LEQUAL));
|
GLDEBUG(glDepthFunc(GL_LEQUAL));
|
||||||
GLDEBUG(glDepthRangef(0.0, 1.0));
|
GLDEBUG(glDepthRangef(0.0, 1.0));
|
||||||
|
|
||||||
std::vector<KRModel *> sphereModels = getContext().getModelManager()->getModel("__sphere");
|
std::vector<KRModel *> sphereModels = getContext().getModelManager()->getModel("__sphere");
|
||||||
if(sphereModels.size()) {
|
if(sphereModels.size()) {
|
||||||
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
||||||
@@ -76,7 +73,4 @@ void KRBone::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRV
|
|||||||
GLDEBUG(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
|
GLDEBUG(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,11 +20,9 @@ public:
|
|||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
virtual tinyxml2::XMLElement *saveXML( tinyxml2::XMLNode *parent);
|
virtual tinyxml2::XMLElement *saveXML( tinyxml2::XMLNode *parent);
|
||||||
virtual void loadXML(tinyxml2::XMLElement *e);
|
virtual void loadXML(tinyxml2::XMLElement *e);
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|||||||
@@ -60,9 +60,7 @@ KRCamera::KRCamera(KRScene &scene, std::string name) : KRNode(scene, name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
KRCamera::~KRCamera() {
|
KRCamera::~KRCamera() {
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
destroyBuffers();
|
destroyBuffers();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRCamera::renderFrame(float deltaTime)
|
void KRCamera::renderFrame(float deltaTime)
|
||||||
@@ -73,9 +71,6 @@ void KRCamera::renderFrame(float deltaTime)
|
|||||||
KRScene &scene = getScene();
|
KRScene &scene = getScene();
|
||||||
|
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
|
|
||||||
KRMat4 viewMatrix = KRMat4::Invert(getModelMatrix());
|
KRMat4 viewMatrix = KRMat4::Invert(getModelMatrix());
|
||||||
|
|
||||||
GLint defaultFBO;
|
GLint defaultFBO;
|
||||||
@@ -378,15 +373,12 @@ void KRCamera::renderFrame(float deltaTime)
|
|||||||
|
|
||||||
GLDEBUG(glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO));
|
GLDEBUG(glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO));
|
||||||
renderPost();
|
renderPost();
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void KRCamera::createBuffers() {
|
void KRCamera::createBuffers() {
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
GLint renderBufferWidth = 0, renderBufferHeight = 0;
|
GLint renderBufferWidth = 0, renderBufferHeight = 0;
|
||||||
GLDEBUG(glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &renderBufferWidth));
|
GLDEBUG(glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &renderBufferWidth));
|
||||||
GLDEBUG(glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &renderBufferHeight));
|
GLDEBUG(glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &renderBufferHeight));
|
||||||
@@ -499,15 +491,10 @@ void KRCamera::createBuffers() {
|
|||||||
GLDEBUG(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, volumetricLightAccumulationTexture, 0));
|
GLDEBUG(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, volumetricLightAccumulationTexture, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRCamera::destroyBuffers()
|
void KRCamera::destroyBuffers()
|
||||||
{
|
{
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
if (compositeDepthTexture) {
|
if (compositeDepthTexture) {
|
||||||
GLDEBUG(glDeleteTextures(1, &compositeDepthTexture));
|
GLDEBUG(glDeleteTextures(1, &compositeDepthTexture));
|
||||||
compositeDepthTexture = 0;
|
compositeDepthTexture = 0;
|
||||||
@@ -542,15 +529,10 @@ void KRCamera::destroyBuffers()
|
|||||||
GLDEBUG(glDeleteFramebuffers(1, &volumetricLightAccumulationBuffer));
|
GLDEBUG(glDeleteFramebuffers(1, &volumetricLightAccumulationBuffer));
|
||||||
volumetricLightAccumulationBuffer = 0;
|
volumetricLightAccumulationBuffer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRCamera::renderPost()
|
void KRCamera::renderPost()
|
||||||
{
|
{
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
// Disable alpha blending
|
// Disable alpha blending
|
||||||
GLDEBUG(glDisable(GL_BLEND));
|
GLDEBUG(glDisable(GL_BLEND));
|
||||||
|
|
||||||
@@ -665,6 +647,7 @@ void KRCamera::renderPost()
|
|||||||
};
|
};
|
||||||
#if GL_OES_vertex_array_object
|
#if GL_OES_vertex_array_object
|
||||||
GLDEBUG(glBindVertexArrayOES(0));
|
GLDEBUG(glBindVertexArrayOES(0));
|
||||||
|
#elif GL_vertex_array_object
|
||||||
#endif
|
#endif
|
||||||
m_pContext->getModelManager()->configureAttribs(true, false, false, true, false, false, false);
|
m_pContext->getModelManager()->configureAttribs(true, false, false, true, false, false, false);
|
||||||
GLDEBUG(glVertexAttribPointer(KRModel::KRENGINE_ATTRIB_TEXUVA, 2, GL_FLOAT, 0, 0, charTexCoords));
|
GLDEBUG(glVertexAttribPointer(KRModel::KRENGINE_ATTRIB_TEXUVA, 2, GL_FLOAT, 0, 0, charTexCoords));
|
||||||
@@ -679,7 +662,5 @@ void KRCamera::renderPost()
|
|||||||
|
|
||||||
m_pContext->getTextureManager()->selectTexture(1, NULL);
|
m_pContext->getTextureManager()->selectTexture(1, NULL);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -97,8 +97,6 @@ int KRDirectionalLight::configureShadowBufferViewports(const KRViewport &viewpor
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRDirectionalLight::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) {
|
void KRDirectionalLight::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) {
|
||||||
|
|
||||||
KRLight::render(pCamera, lights, viewport, renderPass);
|
KRLight::render(pCamera, lights, viewport, renderPass);
|
||||||
@@ -140,5 +138,3 @@ void KRDirectionalLight::render(KRCamera *pCamera, std::vector<KRLight *> &light
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -23,10 +23,7 @@ public:
|
|||||||
KRVector3 getLocalLightDirection();
|
KRVector3 getLocalLightDirection();
|
||||||
KRVector3 getWorldLightDirection();
|
KRVector3 getWorldLightDirection();
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
||||||
#endif
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|||||||
@@ -35,8 +35,19 @@ float const D2R = PI * 2 / 360;
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#import <OpenGL/gl.h>
|
#import <OpenGL/gl3.h>
|
||||||
#import <OpenGL/glext.h>
|
#import <OpenGL/gl3ext.h>
|
||||||
|
|
||||||
|
// OpenGL ES 2.0 mapping to OpenGL 3.2 mappings
|
||||||
|
#define glDepthRangef glDepthRange
|
||||||
|
#define glClearDepthf glClearDepth
|
||||||
|
#define glDeleteQueriesEXT glDeleteQueries
|
||||||
|
#define glGenQueriesEXT glGenQueries
|
||||||
|
#define glBeginQueryEXT glBeginQuery
|
||||||
|
#define glEndQueryEXT glEndQuery
|
||||||
|
#define glGetQueryObjectuivEXT glGetQueryObjectuiv
|
||||||
|
#define GL_ANY_SAMPLES_PASSED_EXT GL_ANY_SAMPLES_PASSED
|
||||||
|
#define GL_QUERY_RESULT_EXT GL_QUERY_RESULT
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -93,8 +93,6 @@ void KRInstance::loadModel() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRInstance::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) {
|
void KRInstance::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) {
|
||||||
|
|
||||||
|
|
||||||
@@ -143,8 +141,6 @@ void KRInstance::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool KRInstance::hasTransparency() {
|
bool KRInstance::hasTransparency() {
|
||||||
if(m_models.size() > 0) {
|
if(m_models.size() > 0) {
|
||||||
return m_models[0]->hasTransparency();
|
return m_models[0]->hasTransparency();
|
||||||
|
|||||||
@@ -57,10 +57,7 @@ public:
|
|||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
virtual tinyxml2::XMLElement *saveXML( tinyxml2::XMLNode *parent);
|
virtual tinyxml2::XMLElement *saveXML( tinyxml2::XMLNode *parent);
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
||||||
#endif
|
|
||||||
|
|
||||||
bool hasTransparency();
|
bool hasTransparency();
|
||||||
|
|
||||||
|
|||||||
@@ -158,8 +158,6 @@ float KRLight::getDecayStart() {
|
|||||||
return m_decayStart;
|
return m_decayStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRLight::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) {
|
void KRLight::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) {
|
||||||
|
|
||||||
KRNode::render(pCamera, lights, viewport, renderPass);
|
KRNode::render(pCamera, lights, viewport, renderPass);
|
||||||
@@ -262,11 +260,7 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
void KRLight::allocateShadowBuffers(int cBuffers) {
|
void KRLight::allocateShadowBuffers(int cBuffers) {
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
// First deallocate buffers no longer needed
|
// First deallocate buffers no longer needed
|
||||||
for(int iShadow = cBuffers; iShadow < KRENGINE_MAX_SHADOW_BUFFERS; iShadow++) {
|
for(int iShadow = cBuffers; iShadow < KRENGINE_MAX_SHADOW_BUFFERS; iShadow++) {
|
||||||
if (shadowDepthTexture[iShadow]) {
|
if (shadowDepthTexture[iShadow]) {
|
||||||
@@ -310,7 +304,6 @@ void KRLight::allocateShadowBuffers(int cBuffers) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_cShadowBuffers = cBuffers;
|
m_cShadowBuffers = cBuffers;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -334,7 +327,6 @@ int KRLight::configureShadowBufferViewports(const KRViewport &viewport)
|
|||||||
|
|
||||||
void KRLight::renderShadowBuffers(KRCamera *pCamera)
|
void KRLight::renderShadowBuffers(KRCamera *pCamera)
|
||||||
{
|
{
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
for(int iShadow=0; iShadow < m_cShadowBuffers; iShadow++) {
|
for(int iShadow=0; iShadow < m_cShadowBuffers; iShadow++) {
|
||||||
if(!shadowValid[iShadow]) {
|
if(!shadowValid[iShadow]) {
|
||||||
shadowValid[iShadow] = true;
|
shadowValid[iShadow] = true;
|
||||||
@@ -344,7 +336,6 @@ void KRLight::renderShadowBuffers(KRCamera *pCamera)
|
|||||||
|
|
||||||
GLDEBUG(glViewport(0, 0, m_shadowViewports[iShadow].getSize().x, m_shadowViewports[iShadow].getSize().y));
|
GLDEBUG(glViewport(0, 0, m_shadowViewports[iShadow].getSize().x, m_shadowViewports[iShadow].getSize().y));
|
||||||
|
|
||||||
|
|
||||||
GLDEBUG(glClearDepthf(0.0f));
|
GLDEBUG(glClearDepthf(0.0f));
|
||||||
GLDEBUG(glClear(GL_DEPTH_BUFFER_BIT));
|
GLDEBUG(glClear(GL_DEPTH_BUFFER_BIT));
|
||||||
|
|
||||||
@@ -376,7 +367,6 @@ void KRLight::renderShadowBuffers(KRCamera *pCamera)
|
|||||||
getScene().render(pCamera, m_shadowViewports[iShadow].getVisibleBounds(), m_shadowViewports[iShadow], KRNode::RENDER_PASS_SHADOWMAP, true);
|
getScene().render(pCamera, m_shadowViewports[iShadow].getVisibleBounds(), m_shadowViewports[iShadow], KRNode::RENDER_PASS_SHADOWMAP, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,12 +41,8 @@ public:
|
|||||||
void setFlareSize(float flare_size);
|
void setFlareSize(float flare_size);
|
||||||
void deleteBuffers();
|
void deleteBuffers();
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int getShadowBufferCount();
|
int getShadowBufferCount();
|
||||||
GLuint *getShadowTextures();
|
GLuint *getShadowTextures();
|
||||||
KRViewport *getShadowViewports();
|
KRViewport *getShadowViewports();
|
||||||
|
|||||||
@@ -217,7 +217,6 @@ bool KRMaterial::isTransparent() {
|
|||||||
return m_tr < 1.0 || m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDONESIDE || m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE;
|
return m_tr < 1.0 || m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDONESIDE || m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
bool KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, std::vector<KRLight *> &lights, const std::vector<KRBone *> &bones, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass) {
|
bool KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, std::vector<KRLight *> &lights, const std::vector<KRBone *> &bones, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass) {
|
||||||
bool bSameMaterial = *prevBoundMaterial == this;
|
bool bSameMaterial = *prevBoundMaterial == this;
|
||||||
bool bLightMap = pLightMap && pCamera->settings.bEnableLightMap;
|
bool bLightMap = pLightMap && pCamera->settings.bEnableLightMap;
|
||||||
@@ -412,8 +411,6 @@ bool KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRC
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char *KRMaterial::getName() {
|
char *KRMaterial::getName() {
|
||||||
return m_szName;
|
return m_szName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,13 +89,8 @@ public:
|
|||||||
bool isTransparent();
|
bool isTransparent();
|
||||||
char *getName();
|
char *getName();
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
bool bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, std::vector<KRLight *> &lights, const std::vector<KRBone *> &bones, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass);
|
bool bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, std::vector<KRLight *> &lights, const std::vector<KRBone *> &bones, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
char m_szName[256];
|
char m_szName[256];
|
||||||
|
|
||||||
|
|||||||
@@ -138,8 +138,6 @@ void KRModel::loadPack(KRDataBlock *data) {
|
|||||||
m_maxPoint = KRVector3(pHeader->maxx, pHeader->maxy, pHeader->maxz);
|
m_maxPoint = KRVector3(pHeader->maxx, pHeader->maxy, pHeader->maxz);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRModel::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass, const std::vector<KRBone *> &bones) {
|
void KRModel::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass, const std::vector<KRBone *> &bones) {
|
||||||
|
|
||||||
//fprintf(stderr, "Rendering model: %s\n", m_name.c_str());
|
//fprintf(stderr, "Rendering model: %s\n", m_name.c_str());
|
||||||
@@ -224,8 +222,6 @@ void KRModel::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
GLfloat KRModel::getMaxDimension() {
|
GLfloat KRModel::getMaxDimension() {
|
||||||
GLfloat m = 0.0;
|
GLfloat m = 0.0;
|
||||||
if(m_maxPoint.x - m_minPoint.x > m) m = m_maxPoint.x - m_minPoint.x;
|
if(m_maxPoint.x - m_minPoint.x > m) m = m_maxPoint.x - m_minPoint.x;
|
||||||
|
|||||||
@@ -89,12 +89,9 @@ public:
|
|||||||
KRENGINE_MODEL_FORMAT_INDEXED_STRIP
|
KRENGINE_MODEL_FORMAT_INDEXED_STRIP
|
||||||
} model_format_t;
|
} model_format_t;
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass, const std::vector<KRBone *> &bones);
|
void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass, const std::vector<KRBone *> &bones);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
std::string m_lodBaseName;
|
std::string m_lodBaseName;
|
||||||
|
|
||||||
virtual std::string getExtension();
|
virtual std::string getExtension();
|
||||||
|
|||||||
@@ -212,14 +212,10 @@ KRNode *KRNode::LoadXML(KRScene &scene, tinyxml2::XMLElement *e) {
|
|||||||
return new_node;
|
return new_node;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRNode::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, RenderPass renderPass)
|
void KRNode::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, RenderPass renderPass)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const std::vector<KRNode *> &KRNode::getChildren() {
|
const std::vector<KRNode *> &KRNode::getChildren() {
|
||||||
return m_childNodes;
|
return m_childNodes;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,12 +91,9 @@ public:
|
|||||||
void SetAttribute(node_attribute_type attrib, float v);
|
void SetAttribute(node_attribute_type attrib, float v);
|
||||||
|
|
||||||
KRScene &getScene();
|
KRScene &getScene();
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, RenderPass renderPass);
|
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, RenderPass renderPass);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
virtual void physicsUpdate(float deltaTime);
|
virtual void physicsUpdate(float deltaTime);
|
||||||
virtual bool hasPhysics();
|
virtual bool hasPhysics();
|
||||||
|
|
||||||
|
|||||||
@@ -37,14 +37,13 @@ KROctreeNode::~KROctreeNode()
|
|||||||
delete m_children[i];
|
delete m_children[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
if(m_occlusionTested) {
|
if(m_occlusionTested) {
|
||||||
GLDEBUG(glDeleteQueriesEXT(1, &m_occlusionQuery));
|
GLDEBUG(glDeleteQueriesEXT(1, &m_occlusionQuery));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
void KROctreeNode::beginOcclusionQuery()
|
void KROctreeNode::beginOcclusionQuery()
|
||||||
{
|
{
|
||||||
if(!m_occlusionTested){
|
if(!m_occlusionTested){
|
||||||
@@ -63,8 +62,6 @@ void KROctreeNode::endOcclusionQuery()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
KRAABB KROctreeNode::getBounds()
|
KRAABB KROctreeNode::getBounds()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,10 +21,7 @@ public:
|
|||||||
|
|
||||||
virtual KRAABB getBounds() = 0;
|
virtual KRAABB getBounds() = 0;
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) = 0;
|
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) = 0;
|
||||||
#endif
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
KRParticleSystem(KRScene &scene, std::string name);
|
KRParticleSystem(KRScene &scene, std::string name);
|
||||||
|
|||||||
@@ -49,9 +49,6 @@ void KRParticleSystemNewtonian::physicsUpdate(float deltaTime)
|
|||||||
m_particlesAbsoluteTime += deltaTime;
|
m_particlesAbsoluteTime += deltaTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRParticleSystemNewtonian::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) {
|
void KRParticleSystemNewtonian::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) {
|
||||||
|
|
||||||
|
|
||||||
@@ -86,8 +83,6 @@ void KRParticleSystemNewtonian::render(KRCamera *pCamera, std::vector<KRLight *>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -23,11 +23,7 @@ public:
|
|||||||
|
|
||||||
virtual KRAABB getBounds();
|
virtual KRAABB getBounds();
|
||||||
|
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
virtual void physicsUpdate(float deltaTime);
|
virtual void physicsUpdate(float deltaTime);
|
||||||
|
|||||||
@@ -40,8 +40,6 @@ KRAABB KRPointLight::getBounds() {
|
|||||||
return KRAABB(KRVector3(-influence_radius), KRVector3(influence_radius), getModelMatrix());
|
return KRAABB(KRVector3(-influence_radius), KRVector3(influence_radius), getModelMatrix());
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRPointLight::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass)
|
void KRPointLight::render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -242,5 +240,3 @@ void KRPointLight::generateMesh() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -22,10 +22,7 @@ public:
|
|||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
virtual KRAABB getBounds();
|
virtual KRAABB getBounds();
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
virtual void render(KRCamera *pCamera, std::vector<KRLight *> &lights, const KRViewport &viewport, KRNode::RenderPass renderPass);
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void generateMesh();
|
void generateMesh();
|
||||||
|
|||||||
@@ -59,10 +59,6 @@ KRScene::~KRScene() {
|
|||||||
m_pRootNode = NULL;
|
m_pRootNode = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
void KRScene::renderFrame(float deltaTime) {
|
void KRScene::renderFrame(float deltaTime) {
|
||||||
getContext().startFrame(deltaTime);
|
getContext().startFrame(deltaTime);
|
||||||
KRCamera *camera = find<KRCamera>();
|
KRCamera *camera = find<KRCamera>();
|
||||||
@@ -161,6 +157,7 @@ void KRScene::render(KROctreeNode *pOctreeNode, std::map<KRAABB, int> &visibleBo
|
|||||||
if(pOctreeNode->m_occlusionTested) {
|
if(pOctreeNode->m_occlusionTested) {
|
||||||
GLuint params = 0;
|
GLuint params = 0;
|
||||||
GLDEBUG(glGetQueryObjectuivEXT(pOctreeNode->m_occlusionQuery, GL_QUERY_RESULT_EXT, ¶ms));
|
GLDEBUG(glGetQueryObjectuivEXT(pOctreeNode->m_occlusionQuery, GL_QUERY_RESULT_EXT, ¶ms));
|
||||||
|
|
||||||
if(params) {
|
if(params) {
|
||||||
// Record the frame number that the test has passed on
|
// Record the frame number that the test has passed on
|
||||||
visibleBounds[octreeBounds] = getContext().getCurrentFrame();
|
visibleBounds[octreeBounds] = getContext().getCurrentFrame();
|
||||||
@@ -331,8 +328,6 @@ void KRScene::render(KROctreeNode *pOctreeNode, std::map<KRAABB, int> &visibleBo
|
|||||||
// fprintf(stderr, "Octree culled: (%f, %f, %f) - (%f, %f, %f)\n", pOctreeNode->getBounds().min.x, pOctreeNode->getBounds().min.y, pOctreeNode->getBounds().min.z, pOctreeNode->getBounds().max.x, pOctreeNode->getBounds().max.y, pOctreeNode->getBounds().max.z);
|
// fprintf(stderr, "Octree culled: (%f, %f, %f) - (%f, %f, %f)\n", pOctreeNode->getBounds().min.x, pOctreeNode->getBounds().min.y, pOctreeNode->getBounds().min.z, pOctreeNode->getBounds().max.x, pOctreeNode->getBounds().max.y, pOctreeNode->getBounds().max.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
std::string KRScene::getExtension() {
|
std::string KRScene::getExtension() {
|
||||||
return "krscene";
|
return "krscene";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,14 +65,11 @@ public:
|
|||||||
bool lineCast(const KRVector3 &v0, const KRVector3 &v1, KRHitInfo &hitinfo);
|
bool lineCast(const KRVector3 &v0, const KRVector3 &v1, KRHitInfo &hitinfo);
|
||||||
bool rayCast(const KRVector3 &v0, const KRVector3 &dir, KRHitInfo &hitinfo);
|
bool rayCast(const KRVector3 &v0, const KRVector3 &dir, KRHitInfo &hitinfo);
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
void renderFrame(float deltaTime);
|
void renderFrame(float deltaTime);
|
||||||
void render(KRCamera *pCamera, std::map<KRAABB, int> &visibleBounds, const KRViewport &viewport, KRNode::RenderPass renderPass, bool new_frame);
|
void render(KRCamera *pCamera, std::map<KRAABB, int> &visibleBounds, const KRViewport &viewport, KRNode::RenderPass renderPass, bool new_frame);
|
||||||
|
|
||||||
void render(KROctreeNode *pOctreeNode, std::map<KRAABB, int> &visibleBounds, KRCamera *pCamera, std::vector<KRLight *> lights, const KRViewport &viewport, KRNode::RenderPass renderPass, std::vector<KROctreeNode *> &remainingOctrees, std::vector<KROctreeNode *> &remainingOctreesTestResults, std::vector<KROctreeNode *> &remainingOctreesTestResultsOnly, bool bOcclusionResultsPass, bool bOcclusionTestResultsOnly);
|
void render(KROctreeNode *pOctreeNode, std::map<KRAABB, int> &visibleBounds, KRCamera *pCamera, std::vector<KRLight *> lights, const KRViewport &viewport, KRNode::RenderPass renderPass, std::vector<KROctreeNode *> &remainingOctrees, std::vector<KROctreeNode *> &remainingOctreesTestResults, std::vector<KROctreeNode *> &remainingOctreesTestResultsOnly, bool bOcclusionResultsPass, bool bOcclusionTestResultsOnly);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
void notify_sceneGraphCreate(KRNode *pNode);
|
void notify_sceneGraphCreate(KRNode *pNode);
|
||||||
void notify_sceneGraphDelete(KRNode *pNode);
|
void notify_sceneGraphDelete(KRNode *pNode);
|
||||||
|
|||||||
@@ -223,8 +223,6 @@ KRShader::~KRShader() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const KRMat4 &matModel, const std::vector<KRLight *> &lights, const KRNode::RenderPass &renderPass) const {
|
bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const KRMat4 &matModel, const std::vector<KRLight *> &lights, const KRNode::RenderPass &renderPass) const {
|
||||||
if(m_iProgram == 0) {
|
if(m_iProgram == 0) {
|
||||||
return false;
|
return false;
|
||||||
@@ -456,8 +454,6 @@ bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const KRMat4 &
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const char *KRShader::getKey() const {
|
const char *KRShader::getKey() const {
|
||||||
return m_szKey;
|
return m_szKey;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,12 +54,8 @@ public:
|
|||||||
virtual ~KRShader();
|
virtual ~KRShader();
|
||||||
const char *getKey() const;
|
const char *getKey() const;
|
||||||
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
|
|
||||||
bool bind(KRCamera &camera, const KRViewport &viewport, const KRMat4 &matModel, const std::vector<KRLight *> &lights, const KRNode::RenderPass &renderPass) const;
|
bool bind(KRCamera &camera, const KRViewport &viewport, const KRMat4 &matModel, const std::vector<KRLight *> &lights, const KRNode::RenderPass &renderPass) const;
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
KRENGINE_UNIFORM_MATERIAL_AMBIENT = 0,
|
KRENGINE_UNIFORM_MATERIAL_AMBIENT = 0,
|
||||||
KRENGINE_UNIFORM_MATERIAL_DIFFUSE,
|
KRENGINE_UNIFORM_MATERIAL_DIFFUSE,
|
||||||
|
|||||||
@@ -183,11 +183,7 @@ bool KRShaderManager::selectShader(KRCamera &camera, const KRShader *pShader, co
|
|||||||
bool bSameShader = strcmp(pShader->getKey(), m_szCurrentShaderKey) == 0;
|
bool bSameShader = strcmp(pShader->getKey(), m_szCurrentShaderKey) == 0;
|
||||||
if(!bSameShader || true) { // FINDME, HACK. Need to update logic to detect appropriate times to bind a new shader
|
if(!bSameShader || true) { // FINDME, HACK. Need to update logic to detect appropriate times to bind a new shader
|
||||||
strcpy(m_szCurrentShaderKey, pShader->getKey());
|
strcpy(m_szCurrentShaderKey, pShader->getKey());
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
return pShader->bind(camera, viewport, matModel, lights, renderPass);
|
return pShader->bind(camera, viewport, matModel, lights, renderPass);
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user