MxEngine
src
Platform
OpenGL
RenderBuffer.h
1
// Copyright(c) 2019 - 2020, #Momo
2
// All rights reserved.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are met :
6
//
7
// 1. Redistributions of source code must retain the above copyright notice, this
8
// list of conditions and the following disclaimer.
9
//
10
// 2. Redistributions in binary form must reproduce the above copyright notice,
11
// this list of conditions and the following disclaimer in the documentation
12
// and /or other materials provided with the distribution.
13
//
14
// 3. Neither the name of the copyright holder nor the names of its
15
// contributors may be used to endorse or promote products derived from
16
// this software without specific prior written permission.
17
//
18
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
// DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
// DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
// OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29
#pragma once
30
31
namespace
MxEngine
32
{
33
class
FrameBuffer;
34
35
class
RenderBuffer
36
{
37
using
BindableId =
unsigned
int;
38
BindableId
id
= 0;
39
int
width = 0, height = 0, samples = 0;
40
public
:
41
RenderBuffer
();
42
~
RenderBuffer
();
43
RenderBuffer
(
const
RenderBuffer
&) =
delete
;
44
RenderBuffer
(
RenderBuffer
&&) noexcept;
45
RenderBuffer
& operator=(
const
RenderBuffer
&) =
delete
;
46
RenderBuffer
& operator=(
RenderBuffer
&&) noexcept;
47
48
int
GetWidth()
const
;
49
int
GetHeight()
const
;
50
int
GetSamples()
const
;
51
void
InitStorage(
int
width,
int
height,
int
samples = 0);
52
void
LinkToFrameBuffer(
const
FrameBuffer
& framebuffer)
const
;
53
void
Bind()
const
;
54
void
Unbind()
const
;
55
BindableId GetNativeHandle()
const
;
56
};
57
}
MxEngine::FrameBuffer
Definition:
FrameBuffer.h:58
MxEngine::RenderBuffer
Definition:
RenderBuffer.h:35
MxEngine
Definition:
Application.cpp:49
Generated by
1.8.12