mirror of
https://github.com/Relintai/sfw.git
synced 2024-12-20 21:06:49 +01:00
Split Texture into Texture and RenderTexture.
This commit is contained in:
parent
feec0785bc
commit
bf7856c9e4
@ -5,16 +5,6 @@
|
|||||||
|
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
void Texture::set_as_render_target() {
|
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, _fbo);
|
|
||||||
glViewport(0, 0, _fbo_width, _fbo_height);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Texture::unset_render_target() {
|
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
|
||||||
glViewport(0, 0, AppWindow::get_singleton()->get_width(), AppWindow::get_singleton()->get_height());
|
|
||||||
}
|
|
||||||
|
|
||||||
void Texture::create_from_image(const Ref<Image> &img) {
|
void Texture::create_from_image(const Ref<Image> &img) {
|
||||||
if (_image == img) {
|
if (_image == img) {
|
||||||
return;
|
return;
|
||||||
@ -269,10 +259,6 @@ Texture::Texture() {
|
|||||||
_flags = 0;
|
_flags = 0;
|
||||||
|
|
||||||
_texture_format = Image::FORMAT_RGBA8;
|
_texture_format = Image::FORMAT_RGBA8;
|
||||||
|
|
||||||
_fbo_width = 0;
|
|
||||||
_fbo_height = 0;
|
|
||||||
_fbo = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Texture::~Texture() {
|
Texture::~Texture() {
|
||||||
@ -280,3 +266,25 @@ Texture::~Texture() {
|
|||||||
glDeleteTextures(1, &_texture);
|
glDeleteTextures(1, &_texture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//RenderTexture
|
||||||
|
|
||||||
|
void RenderTexture::set_as_render_target() {
|
||||||
|
glBindFramebuffer(GL_FRAMEBUFFER, _fbo);
|
||||||
|
glViewport(0, 0, _fbo_width, _fbo_height);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RenderTexture::unset_render_target() {
|
||||||
|
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||||
|
glViewport(0, 0, AppWindow::get_singleton()->get_width(), AppWindow::get_singleton()->get_height());
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderTexture::RenderTexture() :
|
||||||
|
Texture() {
|
||||||
|
_fbo_width = 0;
|
||||||
|
_fbo_height = 0;
|
||||||
|
_fbo = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderTexture::~RenderTexture() {
|
||||||
|
}
|
||||||
|
@ -17,9 +17,6 @@ public:
|
|||||||
return _texture;
|
return _texture;
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_as_render_target();
|
|
||||||
void unset_render_target();
|
|
||||||
|
|
||||||
void create_from_image(const Ref<Image> &img);
|
void create_from_image(const Ref<Image> &img);
|
||||||
|
|
||||||
Ref<Image> get_data();
|
Ref<Image> get_data();
|
||||||
@ -44,7 +41,18 @@ protected:
|
|||||||
int _mipmaps;
|
int _mipmaps;
|
||||||
|
|
||||||
GLuint _texture;
|
GLuint _texture;
|
||||||
|
};
|
||||||
|
|
||||||
|
//TODO
|
||||||
|
class RenderTexture : public Texture {
|
||||||
|
public:
|
||||||
|
void set_as_render_target();
|
||||||
|
void unset_render_target();
|
||||||
|
|
||||||
|
RenderTexture();
|
||||||
|
virtual ~RenderTexture();
|
||||||
|
|
||||||
|
protected:
|
||||||
int _fbo_width;
|
int _fbo_width;
|
||||||
int _fbo_height;
|
int _fbo_height;
|
||||||
GLuint _fbo;
|
GLuint _fbo;
|
||||||
|
Loading…
Reference in New Issue
Block a user