NCBI C++ ToolKit
i3dframebuffer.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef GUI_OPENGL___I3DFRAMEBUFFER___HPP
2 #define GUI_OPENGL___I3DFRAMEBUFFER___HPP
3 
4 
5 /* $Id: i3dframebuffer.hpp 42756 2019-04-10 16:43:22Z katargir $
6  * ===========================================================================
7  *
8  * PUBLIC DOMAIN NOTICE
9  * National Center for Biotechnology Information
10  *
11  * This software/database is a "United States Government Work" under the
12  * terms of the United States Copyright Act. It was written as part of
13  * the author's official duties as a United States Government employee and
14  * thus cannot be copyrighted. This software/database is freely available
15  * to the public for use. The National Library of Medicine and the U.S.
16  * Government have not placed any restriction on its use or reproduction.
17  *
18  * Although all reasonable efforts have been taken to ensure the accuracy
19  * and reliability of the software and data, the NLM and the U.S.
20  * Government do not and cannot warrant the performance or results that
21  * may be obtained by using this software or data. The NLM and the U.S.
22  * Government disclaim all warranties, express or implied, including
23  * warranties of performance, merchantability or fitness for any particular
24  * purpose.
25  *
26  * Please cite the author in any work or product based on this material.
27  *
28  * ===========================================================================
29  *
30  * Authors: Roman Katargin
31  *
32  * File Description:
33  *
34  */
35 
36 
37 #include <gui/opengl.h>
38 #include <gui/gui.hpp>
39 
40 
41 /** @addtogroup GUI_OPENGL
42  *
43  * @{
44  */
45 
47 
48 class I3DTexture;
49 
51 {
52 public:
53  virtual ~I3DFrameBuffer() {}
54 
55  virtual size_t GetFrameSize() const = 0;
56  virtual void SetTextureFiltering(GLint min_filter, GLint mag_filter) = 0;
57 
58  virtual void CreateFrameBuffer() = 0;
59  virtual void SetClearColor(float red, float green, float blue, float alpha) = 0;
60  virtual bool IsValid() = 0;
61  virtual void Render(std::function<void()> renderer) = 0;
62 
63  virtual void GenerateMipMaps() = 0;
64 
65  virtual I3DTexture* Get3DTexture() = 0;
66  virtual void ReleaseTexture() = 0;
67 };
68 
70 
71 /* @} */
72 
73 #endif // GUI_OPENGL___I3DFRAMEBUFFER___HPP
virtual I3DTexture * Get3DTexture()=0
virtual void Render(std::function< void()> renderer)=0
virtual void CreateFrameBuffer()=0
virtual void SetTextureFiltering(GLint min_filter, GLint mag_filter)=0
virtual void ReleaseTexture()=0
virtual void GenerateMipMaps()=0
virtual size_t GetFrameSize() const =0
virtual bool IsValid()=0
virtual void SetClearColor(float red, float green, float blue, float alpha)=0
virtual ~I3DFrameBuffer()
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
Standard mechanism to include OpenGL headers for all platforms.
Modified on Sat May 25 14:19:47 2024 by modify_doxy.py rev. 669887