VTK  9.1.0
vtkOpenGLTexture.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkOpenGLTexture.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
132#ifndef vtkOpenGLTexture_h
133#define vtkOpenGLTexture_h
134
135#include "vtkRenderingOpenGL2Module.h" // For export macro
136#include "vtkTexture.h"
137#include "vtkWeakPointer.h" // needed for vtkWeakPointer.
138
139class vtkRenderWindow;
140class vtkTextureObject;
141
142class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLTexture : public vtkTexture
143{
144public:
147 void PrintSelf(ostream& os, vtkIndent indent) override;
148
154 void Render(vtkRenderer* ren) override;
155
159 void Load(vtkRenderer*) override;
160
161 // Descsription:
162 // Clean up after the rendering is complete.
163 void PostRender(vtkRenderer*) override;
164
172
176 void CopyTexImage(int x, int y, int width, int height);
177
179
182 vtkGetMacro(IsDepthTexture, int);
183 vtkSetMacro(IsDepthTexture, int);
185
187
190 vtkGetMacro(TextureType, int);
191 vtkSetMacro(TextureType, int);
193
194 vtkGetObjectMacro(TextureObject, vtkTextureObject);
196
200 int GetTextureUnit() override;
201
208 int IsTranslucent() override;
209
210protected:
213
215 vtkWeakPointer<vtkRenderWindow> RenderWindow; // RenderWindow used for previous render
216
219
222 int PrevBlendParams[4];
223
224 // used when the texture exceeds the GL limit
225 unsigned char* ResampleToPowerOfTwo(
226 int& xsize, int& ysize, unsigned char* dptr, int bpp, int maxDimGL);
227
228private:
229 vtkOpenGLTexture(const vtkOpenGLTexture&) = delete;
230 void operator=(const vtkOpenGLTexture&) = delete;
231};
232
233#endif
a simple class to control print indentation
Definition: vtkIndent.h:113
OpenGL texture map.
void Load(vtkRenderer *) override
Implement base class method.
int GetTextureUnit() override
Return the texture unit used for this texture.
void CopyTexImage(int x, int y, int width, int height)
copy the renderers read buffer into this texture
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this texture.
int IsTranslucent() override
Is this Texture Translucent? returns false (0) if the texture is either fully opaque or has only full...
unsigned char * ResampleToPowerOfTwo(int &xsize, int &ysize, unsigned char *dptr, int bpp, int maxDimGL)
static vtkOpenGLTexture * New()
void PostRender(vtkRenderer *) override
Cleans up after the texture rendering to restore the state of the graphics context.
void SetTextureObject(vtkTextureObject *)
void Render(vtkRenderer *ren) override
Renders a texture map.
vtkWeakPointer< vtkRenderWindow > RenderWindow
~vtkOpenGLTexture() override
vtkTextureObject * TextureObject
vtkTimeStamp LoadTime
create a window for renderers to draw into
abstract specification for renderers
Definition: vtkRenderer.h:182
abstracts an OpenGL texture object.
handles properties associated with a texture map
Definition: vtkTexture.h:175
record modification and/or execution time
Definition: vtkTimeStamp.h:52
a weak reference to a vtkObject.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39