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=========================================================================*/
32#ifndef vtkOpenGLTexture_h
33#define vtkOpenGLTexture_h
34
35#include "vtkRenderingOpenGL2Module.h" // For export macro
36#include "vtkTexture.h"
37#include "vtkWeakPointer.h" // needed for vtkWeakPointer.
38
39class vtkRenderWindow;
41
42class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLTexture : public vtkTexture
43{
44public:
47 void PrintSelf(ostream& os, vtkIndent indent) override;
48
54 void Render(vtkRenderer* ren) override;
55
59 void Load(vtkRenderer*) override;
60
61 // Descsription:
62 // Clean up after the rendering is complete.
63 void PostRender(vtkRenderer*) override;
64
72
76 void CopyTexImage(int x, int y, int width, int height);
77
79
82 vtkGetMacro(IsDepthTexture, int);
83 vtkSetMacro(IsDepthTexture, int);
85
87
90 vtkGetMacro(TextureType, int);
91 vtkSetMacro(TextureType, int);
93
94 vtkGetObjectMacro(TextureObject, vtkTextureObject);
96
100 int GetTextureUnit() override;
101
108 int IsTranslucent() override;
109
110protected:
113
115 vtkWeakPointer<vtkRenderWindow> RenderWindow; // RenderWindow used for previous render
116
119
122 int PrevBlendParams[4];
123
124 // used when the texture exceeds the GL limit
125 unsigned char* ResampleToPowerOfTwo(
126 int& xsize, int& ysize, unsigned char* dptr, int bpp, int maxDimGL);
127
128private:
129 vtkOpenGLTexture(const vtkOpenGLTexture&) = delete;
130 void operator=(const vtkOpenGLTexture&) = delete;
131};
132
133#endif
a simple class to control print indentation
Definition: vtkIndent.h:43
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:73
abstracts an OpenGL texture object.
handles properties associated with a texture map
Definition: vtkTexture.h:75
record modification and/or execution time
Definition: vtkTimeStamp.h:42
window superclass for vtkRenderWindow
Definition: vtkWindow.h:45
@ height
Definition: vtkX3D.h:260