diff OrthancStone/Sources/OpenGL/OpenGLTexture.cpp @ 2042:0fa4c0ca429d deep-learning

added OpenGLTexture::BindAsTextureUnit()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 03 Feb 2023 21:49:09 +0100
parents e0906b7c67b9
children f3d756e5503f
line wrap: on
line diff
--- a/OrthancStone/Sources/OpenGL/OpenGLTexture.cpp	Wed Feb 01 08:23:26 2023 +0100
+++ b/OrthancStone/Sources/OpenGL/OpenGLTexture.cpp	Fri Feb 03 21:49:09 2023 +0100
@@ -156,6 +156,23 @@
     }
 
 
+    void OpenGLTexture::BindAsTextureUnit(GLint location,
+                                          unsigned int unit) const
+    {
+      if (unit >= 32)
+      {
+        throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+      }
+      
+      assert(GL_TEXTURE0 + 1 == GL_TEXTURE1 &&
+             GL_TEXTURE0 + 31 == GL_TEXTURE31);
+      
+      glActiveTexture(GL_TEXTURE0 + unit);
+      glBindTexture(GL_TEXTURE_2D, texture_);
+      glUniform1i(location, unit /* texture unit */);
+    }
+
+
     Orthanc::ImageAccessor* OpenGLTexture::Download(Orthanc::PixelFormat format) const
     {
       if (context_.IsContextLost())