|
- /*
- ==============================================================================
-
- This file is part of the JUCE library - "Jules' Utility Class Extensions"
- Copyright 2004-11 by Raw Material Software Ltd.
-
- ------------------------------------------------------------------------------
-
- JUCE can be redistributed and/or modified under the terms of the GNU General
- Public License (Version 2), as published by the Free Software Foundation.
- A copy of the license is included in the JUCE distribution, or can be found
- online at www.gnu.org/licenses.
-
- JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- ------------------------------------------------------------------------------
-
- To release a closed-source product which uses JUCE, commercial licenses are
- available: visit www.rawmaterialsoftware.com/juce for more information.
-
- ==============================================================================
- */
-
- #ifndef __JUCE_OPENGLTEXTURE_JUCEHEADER__
- #define __JUCE_OPENGLTEXTURE_JUCEHEADER__
-
- /**
- Creates an openGL texture from an Image.
- */
- class JUCE_API OpenGLTexture
- {
- public:
- OpenGLTexture();
- ~OpenGLTexture();
-
- /** Creates a texture from the given image.
- Note that the image's width and height must both be a power-of-two.
- */
- void load (const Image& image);
-
- /** Frees the texture, if there is one. */
- void release();
-
- /** Binds the texture to the currently selected openGL context. */
- void bind() const;
-
- /** Unbinds the texture to the currently selected openGL context. */
- void unbind() const;
-
- /** Draws this texture into the current context, with the specified corner positions. */
- void draw2D (float x1, float y1,
- float x2, float y2,
- float x3, float y3,
- float x4, float y4,
- const Colour& colour) const;
-
- /** Draws this texture into the current context, with the specified corner positions. */
- void draw3D (float x1, float y1, float z1,
- float x2, float y2, float z2,
- float x3, float y3, float z3,
- float x4, float y4, float z4,
- const Colour& colour) const;
-
- private:
- unsigned int textureID;
- int width, height;
-
- JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (OpenGLTexture);
- };
-
- #endif // __JUCE_OPENGLTEXTURE_JUCEHEADER__
|