Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : */
9 :
10 : #ifndef INCLUDED_VCL_INC_OPENGL_FRAMEBUFFER_H
11 : #define INCLUDED_VCL_INC_OPENGL_FRAMEBUFFER_H
12 :
13 : #include <GL/glew.h>
14 : #include <vcl/dllapi.h>
15 :
16 : #include <opengl/texture.hxx>
17 :
18 : class VCL_PLUGIN_PUBLIC OpenGLFramebuffer
19 : {
20 : private:
21 : GLuint mnId;
22 : int mnWidth;
23 : int mnHeight;
24 : GLuint mnAttachedTexture;
25 :
26 : public:
27 : OpenGLFramebuffer();
28 : virtual ~OpenGLFramebuffer();
29 :
30 : GLuint Id() const { return mnId; };
31 0 : int GetWidth() const { return mnWidth; };
32 0 : int GetHeight() const { return mnHeight; };
33 :
34 : void Bind();
35 : static void Unbind();
36 :
37 : bool IsFree() const;
38 : bool IsAttached( const OpenGLTexture& rTexture ) const;
39 : void AttachTexture( const OpenGLTexture& rTexture );
40 : void DetachTexture();
41 :
42 : public:
43 : OpenGLFramebuffer* mpPrevFramebuffer;
44 : OpenGLFramebuffer* mpNextFramebuffer;
45 : };
46 :
47 : #endif // INCLUDED_VCL_INC_OPENGL_FRAMEBUFFER_H
48 :
49 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|