VIZ++ Class: OpenGLTexture3D

 VIZ++ Class Library  VIZ++ Samples  VIZ++ ClassTree 

Source code

/*
 * OpenGLTexture3D.h 
 * Copyright (c) 2015 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// See https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml

#pragma once

#include <viz++/Exception.h>
#include <viz++/opengl/OpenGLTexture.h>

namespace VIZ {

class OpenGLTexture3D :public OpenGLTexture {

public:
  OpenGLTexture3D()
  :OpenGLTexture(GL_TEXTURE_3D)
  {
  } 

  ~OpenGLTexture3D()
  {
  }
  
  void image(GLint level,  
             GLint internalFormat,  
             GLsizei width,  
             GLsizei height,  
             GLsizei depth,  
             GLint border,  
             GLenum format,  
             GLenum type,  
             const GLvoid * data) 
  { 
    glTexImage3D(getTarget(),  
       level,  
       internalFormat,  
       width,  
       height,  
       depth,  
       border,  
       format,  
       type,  
       data); 
  }

/*
level
  Specifies the level-of-detail number. 
  Level 0 is the base image level. Level n is the n th   mipmap reduction image. 

internalFormat
  Specifies the number of color components in the texture. Must be one of 
  the following symbolic constants: 
   GL_RGBA32F, GL_RGBA32I, GL_RGBA32UI, GL_RGBA16, GL_RGBA16F, GL_RGBA16I, GL_RGBA16UI, GL_RGBA8, GL_RGBA8UI, GL_SRGB8_ALPHA8, GL_RGB10_A2, GL_RGB10_A2UI, GL_R11F_G11F_B10F, GL_RG32F, GL_RG32I, GL_RG32UI, GL_RG16, GL_RG16F, GL_RGB16I, GL_RGB16UI, GL_RG8, GL_RG8I, GL_RG8UI, GL_R32F, GL_R32I, GL_R32UI, GL_R16F, GL_R16I, GL_R16UI, GL_R8, GL_R8I, GL_R8UI, GL_RGBA16_SNORM, GL_RGBA8_SNORM, GL_RGB32F, GL_RGB32I, GL_RGB32UI, GL_RGB16_SNORM, GL_RGB16F, GL_RGB16I, GL_RGB16UI, GL_RGB16, GL_RGB8_SNORM, GL_RGB8, GL_RGB8I, GL_RGB8UI, GL_SRGB8, GL_RGB9_E5, GL_RG16_SNORM, GL_RG8_SNORM, GL_COMPRESSED_RG_RGTC2, GL_COMPRESSED_SIGNED_RG_RGTC2, GL_R16_SNORM, GL_R8_SNORM, GL_COMPRESSED_RED_RGTC1, GL_COMPRESSED_SIGNED_RED_RGTC1, GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT16, GL_DEPTH32F_STENCIL8, GL_DEPTH24_STENCIL8. 

width
  Specifies the width of the texture image. All implementations support 
  3D texture images that are at least 16 texels wide. 

height
  Specifies the height of the texture image. All implementations support 
  3D texture images that are at least 256 texels high. 

depth
 Specifies the depth of the texture image, or the number of layers in a 
 texture array. All implementations support 3D texture images that are 
 at least 256 texels deep, and texture arrays that are at least 256 
  layers deep. 

border
  This value must be 0. 

format
  Specifies the format of the pixel data. The following symbolic values are 
  accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA. 

type
  Specifies the data type of the pixel data. The following symbolic values 
  are accepted: 
   GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV. 

data
Specifies a pointer to the image data in memory. 

 */
};

}



Last modified: 10 Feb 2017

Copyright (c) 2009-2017 Antillia.com ALL RIGHTS RESERVED.