diff --git a/KREngine/KREngine/Classes/KRBone.cpp b/KREngine/KREngine/Classes/KRBone.cpp index 6f58e22..7a5b56c 100644 --- a/KREngine/KREngine/Classes/KRBone.cpp +++ b/KREngine/KREngine/Classes/KRBone.cpp @@ -35,48 +35,42 @@ void KRBone::loadXML(tinyxml2::XMLElement *e) } -#if TARGET_OS_IPHONE - void KRBone::render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) - { - - KRNode::render(pCamera, lights, viewport, renderPass); - - bool bVisualize = false; - - if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) { - KRMat4 sphereModelMatrix = getModelMatrix(); +{ + + KRNode::render(pCamera, lights, viewport, renderPass); + + bool bVisualize = false; + + if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) { + KRMat4 sphereModelMatrix = getModelMatrix(); + + KRShader *pShader = getContext().getShaderManager()->getShader("visualize_overlay", pCamera, lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass); + + if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, lights, 0, renderPass)) { + + // Enable additive blending + GLDEBUG(glEnable(GL_BLEND)); + GLDEBUG(glBlendFunc(GL_ONE, GL_ONE)); - KRShader *pShader = getContext().getShaderManager()->getShader("visualize_overlay", pCamera, lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass); - if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, lights, 0, renderPass)) { - - // Enable additive blending - GLDEBUG(glEnable(GL_BLEND)); - GLDEBUG(glBlendFunc(GL_ONE, GL_ONE)); - - - // Disable z-buffer write - GLDEBUG(glDepthMask(GL_FALSE)); - - // Enable z-buffer test - GLDEBUG(glEnable(GL_DEPTH_TEST)); - GLDEBUG(glDepthFunc(GL_LEQUAL)); - GLDEBUG(glDepthRangef(0.0, 1.0)); - - std::vector sphereModels = getContext().getModelManager()->getModel("__sphere"); - if(sphereModels.size()) { - for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) { - sphereModels[0]->renderSubmesh(i); - } + // Disable z-buffer write + GLDEBUG(glDepthMask(GL_FALSE)); + + // Enable z-buffer test + GLDEBUG(glEnable(GL_DEPTH_TEST)); + GLDEBUG(glDepthFunc(GL_LEQUAL)); + GLDEBUG(glDepthRangef(0.0, 1.0)); + std::vector sphereModels = getContext().getModelManager()->getModel("__sphere"); + if(sphereModels.size()) { + for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) { + sphereModels[0]->renderSubmesh(i); } + } - // Enable alpha blending - GLDEBUG(glEnable(GL_BLEND)); - GLDEBUG(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); - } + // Enable alpha blending + GLDEBUG(glEnable(GL_BLEND)); + GLDEBUG(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); } } - -#endif - +} diff --git a/KREngine/KREngine/Classes/KRBone.h b/KREngine/KREngine/Classes/KRBone.h index 5869c3f..b0225ea 100644 --- a/KREngine/KREngine/Classes/KRBone.h +++ b/KREngine/KREngine/Classes/KRBone.h @@ -20,11 +20,9 @@ public: virtual std::string getElementName(); virtual tinyxml2::XMLElement *saveXML( tinyxml2::XMLNode *parent); virtual void loadXML(tinyxml2::XMLElement *e); -#if TARGET_OS_IPHONE void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass); - -#endif + private: diff --git a/KREngine/KREngine/Classes/KRCamera.cpp b/KREngine/KREngine/Classes/KRCamera.cpp index 64af862..62dd765 100644 --- a/KREngine/KREngine/Classes/KRCamera.cpp +++ b/KREngine/KREngine/Classes/KRCamera.cpp @@ -60,9 +60,7 @@ KRCamera::KRCamera(KRScene &scene, std::string name) : KRNode(scene, name) { } KRCamera::~KRCamera() { -#if TARGET_OS_IPHONE destroyBuffers(); -#endif } void KRCamera::renderFrame(float deltaTime) @@ -72,9 +70,6 @@ void KRCamera::renderFrame(float deltaTime) KRScene &scene = getScene(); - -#if TARGET_OS_IPHONE - KRMat4 viewMatrix = KRMat4::Invert(getModelMatrix()); @@ -378,14 +373,11 @@ void KRCamera::renderFrame(float deltaTime) GLDEBUG(glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO)); renderPost(); -#endif } void KRCamera::createBuffers() { - -#if TARGET_OS_IPHONE GLint renderBufferWidth = 0, renderBufferHeight = 0; GLDEBUG(glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &renderBufferWidth)); @@ -499,15 +491,10 @@ void KRCamera::createBuffers() { GLDEBUG(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, volumetricLightAccumulationTexture, 0)); } } - -#endif - } void KRCamera::destroyBuffers() { -#if TARGET_OS_IPHONE - if (compositeDepthTexture) { GLDEBUG(glDeleteTextures(1, &compositeDepthTexture)); compositeDepthTexture = 0; @@ -542,15 +529,10 @@ void KRCamera::destroyBuffers() GLDEBUG(glDeleteFramebuffers(1, &volumetricLightAccumulationBuffer)); volumetricLightAccumulationBuffer = 0; } - -#endif - } void KRCamera::renderPost() { -#if TARGET_OS_IPHONE - // Disable alpha blending GLDEBUG(glDisable(GL_BLEND)); @@ -665,6 +647,7 @@ void KRCamera::renderPost() }; #if GL_OES_vertex_array_object GLDEBUG(glBindVertexArrayOES(0)); +#elif GL_vertex_array_object #endif m_pContext->getModelManager()->configureAttribs(true, false, false, true, false, false, false); 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); } -#endif - } diff --git a/KREngine/KREngine/Classes/KRDirectionalLight.cpp b/KREngine/KREngine/Classes/KRDirectionalLight.cpp index 9e4168f..4f7e00e 100644 --- a/KREngine/KREngine/Classes/KRDirectionalLight.cpp +++ b/KREngine/KREngine/Classes/KRDirectionalLight.cpp @@ -97,8 +97,6 @@ int KRDirectionalLight::configureShadowBufferViewports(const KRViewport &viewpor return 1; } -#if TARGET_OS_IPHONE - void KRDirectionalLight::render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) { KRLight::render(pCamera, lights, viewport, renderPass); @@ -140,5 +138,3 @@ void KRDirectionalLight::render(KRCamera *pCamera, std::vector &light } } } - -#endif \ No newline at end of file diff --git a/KREngine/KREngine/Classes/KRDirectionalLight.h b/KREngine/KREngine/Classes/KRDirectionalLight.h index 44ac8e4..b5cb3bb 100644 --- a/KREngine/KREngine/Classes/KRDirectionalLight.h +++ b/KREngine/KREngine/Classes/KRDirectionalLight.h @@ -22,11 +22,8 @@ public: virtual std::string getElementName(); KRVector3 getLocalLightDirection(); KRVector3 getWorldLightDirection(); - -#if TARGET_OS_IPHONE - + virtual void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass); -#endif protected: diff --git a/KREngine/KREngine/Classes/KREngine-common.h b/KREngine/KREngine/Classes/KREngine-common.h index 334a931..46868e1 100644 --- a/KREngine/KREngine/Classes/KREngine-common.h +++ b/KREngine/KREngine/Classes/KREngine-common.h @@ -35,8 +35,19 @@ float const D2R = PI * 2 / 360; #else -#import -#import +#import +#import + +// 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 diff --git a/KREngine/KREngine/Classes/KRInstance.cpp b/KREngine/KREngine/Classes/KRInstance.cpp index 7873957..afdcd88 100644 --- a/KREngine/KREngine/Classes/KRInstance.cpp +++ b/KREngine/KREngine/Classes/KRInstance.cpp @@ -93,8 +93,6 @@ void KRInstance::loadModel() { } } -#if TARGET_OS_IPHONE - void KRInstance::render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) { @@ -143,8 +141,6 @@ void KRInstance::render(KRCamera *pCamera, std::vector &lights, const } } -#endif - bool KRInstance::hasTransparency() { if(m_models.size() > 0) { return m_models[0]->hasTransparency(); diff --git a/KREngine/KREngine/Classes/KRInstance.h b/KREngine/KREngine/Classes/KRInstance.h index 94e3d5a..0b7b8e6 100644 --- a/KREngine/KREngine/Classes/KRInstance.h +++ b/KREngine/KREngine/Classes/KRInstance.h @@ -56,11 +56,8 @@ public: virtual std::string getElementName(); virtual tinyxml2::XMLElement *saveXML( tinyxml2::XMLNode *parent); - -#if TARGET_OS_IPHONE - + virtual void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass); -#endif bool hasTransparency(); diff --git a/KREngine/KREngine/Classes/KRLight.cpp b/KREngine/KREngine/Classes/KRLight.cpp index 9537670..04d3b29 100644 --- a/KREngine/KREngine/Classes/KRLight.cpp +++ b/KREngine/KREngine/Classes/KRLight.cpp @@ -158,8 +158,6 @@ float KRLight::getDecayStart() { return m_decayStart; } -#if TARGET_OS_IPHONE - void KRLight::render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) { KRNode::render(pCamera, lights, viewport, renderPass); @@ -262,11 +260,7 @@ void KRLight::render(KRCamera *pCamera, std::vector &lights, const KR } } -#endif - - void KRLight::allocateShadowBuffers(int cBuffers) { -#if TARGET_OS_IPHONE // First deallocate buffers no longer needed for(int iShadow = cBuffers; iShadow < KRENGINE_MAX_SHADOW_BUFFERS; iShadow++) { if (shadowDepthTexture[iShadow]) { @@ -310,7 +304,6 @@ void KRLight::allocateShadowBuffers(int cBuffers) { } m_cShadowBuffers = cBuffers; -#endif } @@ -334,7 +327,6 @@ int KRLight::configureShadowBufferViewports(const KRViewport &viewport) void KRLight::renderShadowBuffers(KRCamera *pCamera) { -#if TARGET_OS_IPHONE for(int iShadow=0; iShadow < m_cShadowBuffers; iShadow++) { if(!shadowValid[iShadow]) { shadowValid[iShadow] = true; @@ -344,14 +336,13 @@ void KRLight::renderShadowBuffers(KRCamera *pCamera) GLDEBUG(glViewport(0, 0, m_shadowViewports[iShadow].getSize().x, m_shadowViewports[iShadow].getSize().y)); - GLDEBUG(glClearDepthf(0.0f)); GLDEBUG(glClear(GL_DEPTH_BUFFER_BIT)); GLDEBUG(glViewport(1, 1, m_shadowViewports[iShadow].getSize().x - 2, m_shadowViewports[iShadow].getSize().y - 2)); GLDEBUG(glClearDepthf(1.0f)); - + GLDEBUG(glClear(GL_DEPTH_BUFFER_BIT)); GLDEBUG(glDisable(GL_DITHER)); @@ -376,7 +367,6 @@ void KRLight::renderShadowBuffers(KRCamera *pCamera) getScene().render(pCamera, m_shadowViewports[iShadow].getVisibleBounds(), m_shadowViewports[iShadow], KRNode::RENDER_PASS_SHADOWMAP, true); } } -#endif } diff --git a/KREngine/KREngine/Classes/KRLight.h b/KREngine/KREngine/Classes/KRLight.h index fbe21cf..b4fb4c8 100644 --- a/KREngine/KREngine/Classes/KRLight.h +++ b/KREngine/KREngine/Classes/KRLight.h @@ -40,13 +40,9 @@ public: void setFlareTexture(std::string flare_texture); void setFlareSize(float flare_size); void deleteBuffers(); - -#if TARGET_OS_IPHONE - + virtual void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass); -#endif - int getShadowBufferCount(); GLuint *getShadowTextures(); KRViewport *getShadowViewports(); diff --git a/KREngine/KREngine/Classes/KRMaterial.cpp b/KREngine/KREngine/Classes/KRMaterial.cpp index 73095cb..43fac66 100644 --- a/KREngine/KREngine/Classes/KRMaterial.cpp +++ b/KREngine/KREngine/Classes/KRMaterial.cpp @@ -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; } -#if TARGET_OS_IPHONE bool KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, std::vector &lights, const std::vector &bones, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass) { bool bSameMaterial = *prevBoundMaterial == this; bool bLightMap = pLightMap && pCamera->settings.bEnableLightMap; @@ -412,8 +411,6 @@ bool KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRC return true; } -#endif - char *KRMaterial::getName() { return m_szName; } diff --git a/KREngine/KREngine/Classes/KRMaterial.h b/KREngine/KREngine/Classes/KRMaterial.h index 3c8a05e..7c15cf9 100644 --- a/KREngine/KREngine/Classes/KRMaterial.h +++ b/KREngine/KREngine/Classes/KRMaterial.h @@ -89,13 +89,8 @@ public: bool isTransparent(); char *getName(); -#if TARGET_OS_IPHONE bool bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRCamera *pCamera, std::vector &lights, const std::vector &bones, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass); -#endif - - - private: char m_szName[256]; diff --git a/KREngine/KREngine/Classes/KRModel.cpp b/KREngine/KREngine/Classes/KRModel.cpp index 42d7b41..1cae06c 100644 --- a/KREngine/KREngine/Classes/KRModel.cpp +++ b/KREngine/KREngine/Classes/KRModel.cpp @@ -138,8 +138,6 @@ void KRModel::loadPack(KRDataBlock *data) { m_maxPoint = KRVector3(pHeader->maxx, pHeader->maxy, pHeader->maxz); } -#if TARGET_OS_IPHONE - void KRModel::render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass, const std::vector &bones) { //fprintf(stderr, "Rendering model: %s\n", m_name.c_str()); @@ -224,8 +222,6 @@ void KRModel::render(KRCamera *pCamera, std::vector &lights, const KR } } -#endif - GLfloat KRModel::getMaxDimension() { GLfloat m = 0.0; if(m_maxPoint.x - m_minPoint.x > m) m = m_maxPoint.x - m_minPoint.x; diff --git a/KREngine/KREngine/Classes/KRModel.h b/KREngine/KREngine/Classes/KRModel.h index 158fdb6..4c757dd 100644 --- a/KREngine/KREngine/Classes/KRModel.h +++ b/KREngine/KREngine/Classes/KRModel.h @@ -89,12 +89,9 @@ public: KRENGINE_MODEL_FORMAT_INDEXED_STRIP } model_format_t; -#if TARGET_OS_IPHONE void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, const KRMat4 &matModel, KRTexture *pLightMap, KRNode::RenderPass renderPass, const std::vector &bones); -#endif - std::string m_lodBaseName; virtual std::string getExtension(); diff --git a/KREngine/KREngine/Classes/KRNode.cpp b/KREngine/KREngine/Classes/KRNode.cpp index 700e92e..6f6875f 100644 --- a/KREngine/KREngine/Classes/KRNode.cpp +++ b/KREngine/KREngine/Classes/KRNode.cpp @@ -212,14 +212,10 @@ KRNode *KRNode::LoadXML(KRScene &scene, tinyxml2::XMLElement *e) { return new_node; } -#if TARGET_OS_IPHONE - void KRNode::render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, RenderPass renderPass) { } -#endif - const std::vector &KRNode::getChildren() { return m_childNodes; } diff --git a/KREngine/KREngine/Classes/KRNode.h b/KREngine/KREngine/Classes/KRNode.h index 93d7a19..aaea650 100644 --- a/KREngine/KREngine/Classes/KRNode.h +++ b/KREngine/KREngine/Classes/KRNode.h @@ -91,11 +91,8 @@ public: void SetAttribute(node_attribute_type attrib, float v); KRScene &getScene(); -#if TARGET_OS_IPHONE virtual void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, RenderPass renderPass); - -#endif virtual void physicsUpdate(float deltaTime); virtual bool hasPhysics(); diff --git a/KREngine/KREngine/Classes/KROctreeNode.cpp b/KREngine/KREngine/Classes/KROctreeNode.cpp index 856f330..0f5ba5d 100644 --- a/KREngine/KREngine/Classes/KROctreeNode.cpp +++ b/KREngine/KREngine/Classes/KROctreeNode.cpp @@ -37,14 +37,13 @@ KROctreeNode::~KROctreeNode() delete m_children[i]; } } -#if TARGET_OS_IPHONE + if(m_occlusionTested) { GLDEBUG(glDeleteQueriesEXT(1, &m_occlusionQuery)); } -#endif } -#if TARGET_OS_IPHONE + void KROctreeNode::beginOcclusionQuery() { if(!m_occlusionTested){ @@ -63,8 +62,6 @@ void KROctreeNode::endOcclusionQuery() } } -#endif - KRAABB KROctreeNode::getBounds() { diff --git a/KREngine/KREngine/Classes/KRParticleSystem.h b/KREngine/KREngine/Classes/KRParticleSystem.h index 1d27517..e1a5f0d 100644 --- a/KREngine/KREngine/Classes/KRParticleSystem.h +++ b/KREngine/KREngine/Classes/KRParticleSystem.h @@ -21,10 +21,7 @@ public: virtual KRAABB getBounds() = 0; -#if TARGET_OS_IPHONE - virtual void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) = 0; -#endif protected: KRParticleSystem(KRScene &scene, std::string name); diff --git a/KREngine/KREngine/Classes/KRParticleSystemNewtonian.cpp b/KREngine/KREngine/Classes/KRParticleSystemNewtonian.cpp index 7e1ec99..ed11915 100644 --- a/KREngine/KREngine/Classes/KRParticleSystemNewtonian.cpp +++ b/KREngine/KREngine/Classes/KRParticleSystemNewtonian.cpp @@ -49,9 +49,6 @@ void KRParticleSystemNewtonian::physicsUpdate(float deltaTime) m_particlesAbsoluteTime += deltaTime; } - -#if TARGET_OS_IPHONE - void KRParticleSystemNewtonian::render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) { @@ -86,8 +83,6 @@ void KRParticleSystemNewtonian::render(KRCamera *pCamera, std::vector } } -#endif - // // diff --git a/KREngine/KREngine/Classes/KRParticleSystemNewtonian.h b/KREngine/KREngine/Classes/KRParticleSystemNewtonian.h index cf1472f..8fda770 100644 --- a/KREngine/KREngine/Classes/KRParticleSystemNewtonian.h +++ b/KREngine/KREngine/Classes/KRParticleSystemNewtonian.h @@ -23,11 +23,7 @@ public: virtual KRAABB getBounds(); - -#if TARGET_OS_IPHONE - virtual void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass); -#endif virtual void physicsUpdate(float deltaTime); diff --git a/KREngine/KREngine/Classes/KRPointLight.cpp b/KREngine/KREngine/Classes/KRPointLight.cpp index 67dea1f..70909f8 100644 --- a/KREngine/KREngine/Classes/KRPointLight.cpp +++ b/KREngine/KREngine/Classes/KRPointLight.cpp @@ -40,8 +40,6 @@ KRAABB KRPointLight::getBounds() { return KRAABB(KRVector3(-influence_radius), KRVector3(influence_radius), getModelMatrix()); } -#if TARGET_OS_IPHONE - void KRPointLight::render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass) { @@ -242,5 +240,3 @@ void KRPointLight::generateMesh() { } } } - -#endif \ No newline at end of file diff --git a/KREngine/KREngine/Classes/KRPointLight.h b/KREngine/KREngine/Classes/KRPointLight.h index 4b6fe00..06a929a 100644 --- a/KREngine/KREngine/Classes/KRPointLight.h +++ b/KREngine/KREngine/Classes/KRPointLight.h @@ -21,11 +21,8 @@ public: virtual std::string getElementName(); virtual KRAABB getBounds(); - -#if TARGET_OS_IPHONE - + virtual void render(KRCamera *pCamera, std::vector &lights, const KRViewport &viewport, KRNode::RenderPass renderPass); -#endif private: void generateMesh(); diff --git a/KREngine/KREngine/Classes/KRScene.cpp b/KREngine/KREngine/Classes/KRScene.cpp index cc4efce..b4e3c7b 100644 --- a/KREngine/KREngine/Classes/KRScene.cpp +++ b/KREngine/KREngine/Classes/KRScene.cpp @@ -59,10 +59,6 @@ KRScene::~KRScene() { m_pRootNode = NULL; } - - -#if TARGET_OS_IPHONE - void KRScene::renderFrame(float deltaTime) { getContext().startFrame(deltaTime); KRCamera *camera = find(); @@ -161,6 +157,7 @@ void KRScene::render(KROctreeNode *pOctreeNode, std::map &visibleBo if(pOctreeNode->m_occlusionTested) { GLuint params = 0; GLDEBUG(glGetQueryObjectuivEXT(pOctreeNode->m_occlusionQuery, GL_QUERY_RESULT_EXT, ¶ms)); + if(params) { // Record the frame number that the test has passed on visibleBounds[octreeBounds] = getContext().getCurrentFrame(); @@ -173,7 +170,7 @@ void KRScene::render(KROctreeNode *pOctreeNode, std::map &visibleBo // Record -1 to indicate that the visibility test had failed visibleBounds[octreeBounds] = -1; } - + GLDEBUG(glDeleteQueriesEXT(1, &pOctreeNode->m_occlusionQuery)); pOctreeNode->m_occlusionTested = false; pOctreeNode->m_occlusionQuery = 0; @@ -331,8 +328,6 @@ void KRScene::render(KROctreeNode *pOctreeNode, std::map &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); } -#endif - std::string KRScene::getExtension() { return "krscene"; } diff --git a/KREngine/KREngine/Classes/KRScene.h b/KREngine/KREngine/Classes/KRScene.h index f313fa4..a8a6313 100644 --- a/KREngine/KREngine/Classes/KRScene.h +++ b/KREngine/KREngine/Classes/KRScene.h @@ -65,14 +65,11 @@ public: bool lineCast(const KRVector3 &v0, const KRVector3 &v1, KRHitInfo &hitinfo); bool rayCast(const KRVector3 &v0, const KRVector3 &dir, KRHitInfo &hitinfo); -#if TARGET_OS_IPHONE void renderFrame(float deltaTime); void render(KRCamera *pCamera, std::map &visibleBounds, const KRViewport &viewport, KRNode::RenderPass renderPass, bool new_frame); void render(KROctreeNode *pOctreeNode, std::map &visibleBounds, KRCamera *pCamera, std::vector lights, const KRViewport &viewport, KRNode::RenderPass renderPass, std::vector &remainingOctrees, std::vector &remainingOctreesTestResults, std::vector &remainingOctreesTestResultsOnly, bool bOcclusionResultsPass, bool bOcclusionTestResultsOnly); -#endif - void notify_sceneGraphCreate(KRNode *pNode); void notify_sceneGraphDelete(KRNode *pNode); diff --git a/KREngine/KREngine/Classes/KRShader.cpp b/KREngine/KREngine/Classes/KRShader.cpp index 6c3efe6..cf4207d 100644 --- a/KREngine/KREngine/Classes/KRShader.cpp +++ b/KREngine/KREngine/Classes/KRShader.cpp @@ -223,8 +223,6 @@ KRShader::~KRShader() { } } -#if TARGET_OS_IPHONE - bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const KRMat4 &matModel, const std::vector &lights, const KRNode::RenderPass &renderPass) const { if(m_iProgram == 0) { return false; @@ -456,8 +454,6 @@ bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const KRMat4 & return true; } -#endif - const char *KRShader::getKey() const { return m_szKey; } diff --git a/KREngine/KREngine/Classes/KRShader.h b/KREngine/KREngine/Classes/KRShader.h index f4c1afd..bbe1bae 100644 --- a/KREngine/KREngine/Classes/KRShader.h +++ b/KREngine/KREngine/Classes/KRShader.h @@ -54,12 +54,8 @@ public: virtual ~KRShader(); const char *getKey() const; -#if TARGET_OS_IPHONE - bool bind(KRCamera &camera, const KRViewport &viewport, const KRMat4 &matModel, const std::vector &lights, const KRNode::RenderPass &renderPass) const; -#endif - enum { KRENGINE_UNIFORM_MATERIAL_AMBIENT = 0, KRENGINE_UNIFORM_MATERIAL_DIFFUSE, diff --git a/KREngine/KREngine/Classes/KRShaderManager.cpp b/KREngine/KREngine/Classes/KRShaderManager.cpp index a938461..f3de56e 100644 --- a/KREngine/KREngine/Classes/KRShaderManager.cpp +++ b/KREngine/KREngine/Classes/KRShaderManager.cpp @@ -183,11 +183,7 @@ bool KRShaderManager::selectShader(KRCamera &camera, const KRShader *pShader, co 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 strcpy(m_szCurrentShaderKey, pShader->getKey()); -#if TARGET_OS_IPHONE return pShader->bind(camera, viewport, matModel, lights, renderPass); -#else - return false; -#endif } else { return true; }