From 3723552bf3793d81f6324a3f12a2b9e2297dd46a Mon Sep 17 00:00:00 2001 From: Lars Ivar Hatledal Date: Thu, 10 Oct 2024 11:37:26 +0200 Subject: [PATCH] remove unused DepthTexture (#285) --- include/threepp/renderers/GLRenderTarget.hpp | 1 - include/threepp/textures/DepthTexture.hpp | 24 -------- src/CMakeLists.txt | 1 - src/threepp/renderers/GLRenderTarget.cpp | 2 +- src/threepp/renderers/gl/GLTextures.cpp | 62 ++------------------ src/threepp/renderers/gl/GLTextures.hpp | 3 - 6 files changed, 7 insertions(+), 86 deletions(-) delete mode 100644 include/threepp/textures/DepthTexture.hpp diff --git a/include/threepp/renderers/GLRenderTarget.hpp b/include/threepp/renderers/GLRenderTarget.hpp index 39127a25a..2a108bb94 100644 --- a/include/threepp/renderers/GLRenderTarget.hpp +++ b/include/threepp/renderers/GLRenderTarget.hpp @@ -33,7 +33,6 @@ namespace threepp { bool generateMipmaps{false}; bool depthBuffer{true}; bool stencilBuffer{false}; - std::shared_ptr depthTexture; Options() = default; }; diff --git a/include/threepp/textures/DepthTexture.hpp b/include/threepp/textures/DepthTexture.hpp deleted file mode 100644 index 7217d538e..000000000 --- a/include/threepp/textures/DepthTexture.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// https://github.com/mrdoob/three.js/blob/r129/src/textures/DepthTexture.js - -#ifndef THREEPP_DEPTHTEXTURE_HPP -#define THREEPP_DEPTHTEXTURE_HPP - -#include "threepp/textures/Texture.hpp" - -namespace threepp { - - class DepthTexture: public Texture { - - protected: - DepthTexture(int width, int height, - int type, int mapping, - int wrapS, int wrapT, - int magFilter, int minFilter, - int anisotropy, int format) - : Texture({}) { - } - }; - -}// namespace threepp - -#endif//THREEPP_DEPTHTEXTURE_HPP diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6c66d06e3..3666426e2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -169,7 +169,6 @@ set(publicHeaders "threepp/textures/CubeTexture.hpp" "threepp/textures/DataTexture.hpp" "threepp/textures/DataTexture3D.hpp" - "threepp/textures/DepthTexture.hpp" "threepp/textures/Image.hpp" "threepp/textures/Texture.hpp" diff --git a/src/threepp/renderers/GLRenderTarget.cpp b/src/threepp/renderers/GLRenderTarget.cpp index fbce86ee9..c3fd2edbf 100644 --- a/src/threepp/renderers/GLRenderTarget.cpp +++ b/src/threepp/renderers/GLRenderTarget.cpp @@ -16,7 +16,7 @@ GLRenderTarget::GLRenderTarget(unsigned int width, unsigned int height, const Op width(width), height(height), scissor(0.f, 0.f, static_cast(width), static_cast(height)), viewport(0.f, 0.f, static_cast(width), static_cast(height)), - depthBuffer(options.depthBuffer), stencilBuffer(options.stencilBuffer), depthTexture(options.depthTexture), + depthBuffer(options.depthBuffer), stencilBuffer(options.stencilBuffer), texture(Texture::create({Image({}, width, height)})) { if (options.mapping) texture->mapping = *options.mapping; diff --git a/src/threepp/renderers/gl/GLTextures.cpp b/src/threepp/renderers/gl/GLTextures.cpp index 8b1eb831f..9fa454c39 100644 --- a/src/threepp/renderers/gl/GLTextures.cpp +++ b/src/threepp/renderers/gl/GLTextures.cpp @@ -5,7 +5,6 @@ #include "threepp/renderers/gl/GLUtils.hpp" #include "threepp/textures/DataTexture3D.hpp" -#include "threepp/textures/DepthTexture.hpp" #if EMSCRIPTEN #include @@ -248,11 +247,6 @@ void gl::GLTextures::deallocateRenderTarget(GLRenderTarget* renderTarget) { info->memory.textures--; } - if (renderTarget->depthTexture) { - - renderTarget->depthTexture->dispose(); - } - glDeleteFramebuffers(1, &renderTargetProperties->glFramebuffer.value()); if (renderTargetProperties->glDepthbuffer) glDeleteRenderbuffers(1, &renderTargetProperties->glDepthbuffer.value()); @@ -437,59 +431,15 @@ void gl::GLTextures::setupRenderBufferStorage(unsigned int renderbuffer, GLRende glBindRenderbuffer(GL_RENDERBUFFER, 0); } -void gl::GLTextures::setupDepthTexture(unsigned int framebuffer, GLRenderTarget* renderTarget) { - - state->bindFramebuffer(GL_FRAMEBUFFER, framebuffer); - - if (!(renderTarget->depthTexture && renderTarget->depthTexture)) { - - throw std::runtime_error("renderTarget.depthTexture must be an instance of THREE.DepthTexture"); - } - - // upload an empty depth texture with framebuffer size - if (!properties->textureProperties.get(renderTarget->depthTexture.get())->glTexture || - renderTarget->depthTexture->image().width != renderTarget->width || - renderTarget->depthTexture->image().height != renderTarget->height) { - - renderTarget->depthTexture->image().width = renderTarget->width; - renderTarget->depthTexture->image().height = renderTarget->height; - renderTarget->depthTexture->needsUpdate(); - } - - setTexture2D(*renderTarget->depthTexture, 0); - - const auto glDepthTexture = properties->textureProperties.get(renderTarget->depthTexture.get())->glTexture; - - if (renderTarget->depthTexture->format == Format::Depth) { - - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, *glDepthTexture, 0); - - } else if (renderTarget->depthTexture->format == Format::DepthStencil) { - - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, *glDepthTexture, 0); - - } else { - - throw std::runtime_error("Unknown depthTexture format"); - } -} - void gl::GLTextures::setupDepthRenderbuffer(GLRenderTarget* renderTarget) { - auto renderTargetProperties = properties->renderTargetProperties.get(renderTarget); - - if (renderTarget->depthTexture) { - - setupDepthTexture(*renderTargetProperties->glFramebuffer, renderTarget); + const auto renderTargetProperties = properties->renderTargetProperties.get(renderTarget); - } else { - - state->bindFramebuffer(GL_FRAMEBUFFER, renderTargetProperties->glFramebuffer.value()); - GLuint glDepthbuffer; - glGenRenderbuffers(1, &glDepthbuffer); - renderTargetProperties->glDepthbuffer = glDepthbuffer; - setupRenderBufferStorage(*renderTargetProperties->glDepthbuffer, renderTarget); - } + state->bindFramebuffer(GL_FRAMEBUFFER, renderTargetProperties->glFramebuffer.value()); + GLuint glDepthbuffer; + glGenRenderbuffers(1, &glDepthbuffer); + renderTargetProperties->glDepthbuffer = glDepthbuffer; + setupRenderBufferStorage(*renderTargetProperties->glDepthbuffer, renderTarget); state->bindFramebuffer(GL_FRAMEBUFFER, 0); } diff --git a/src/threepp/renderers/gl/GLTextures.hpp b/src/threepp/renderers/gl/GLTextures.hpp index b04dae486..3d1db8e36 100644 --- a/src/threepp/renderers/gl/GLTextures.hpp +++ b/src/threepp/renderers/gl/GLTextures.hpp @@ -56,9 +56,6 @@ namespace threepp::gl { void setupRenderBufferStorage(unsigned int renderbuffer, GLRenderTarget* renderTarget); - // Setup resources for a Depth Texture for a FBO (needs an extension) - void setupDepthTexture(unsigned int framebuffer, GLRenderTarget* renderTarget); - // Setup GL resources for a non-texture depth buffer void setupDepthRenderbuffer(GLRenderTarget* renderTarget);