Don't mess with render state in AppWindow.

This commit is contained in:
Relintai 2024-01-13 15:34:51 +01:00
parent 1ddba7d9d0
commit c6a43e16be
3 changed files with 18 additions and 50 deletions

View File

@ -7,6 +7,7 @@
#include "render_core/keyboard.h"
#include "render_core/mesh_utils.h"
#include "render_immediate/renderer.h"
#include "render_core/window.h"
//#include "render_core/font.h"
void GameScene::input_event(const Ref<InputEvent> &event) {
@ -79,6 +80,17 @@ void GameScene::update(float delta) {
}
void GameScene::render() {
glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
AppWindow::get_singleton()->reset_viewport();
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
static float rotmi = 0;
if (render_type == 0) {
@ -269,9 +281,6 @@ void GameScene::render_immediate() {
}
void GameScene::render_obj() {
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
//static float rot = 0;
//Transform t = camera->get_camera_transform();
//t.basis = Basis(Vector3(0, 1, 0), rot);

View File

@ -250,31 +250,7 @@ void AppWindow::glNewFrame() {
AppWindow::get_singleton()->width = w;
AppWindow::get_singleton()->height = h;
// blending defaults
glEnable(GL_BLEND);
// culling defaults
// glEnable(GL_CULL_FACE);
// glCullFace(GL_BACK);
// glFrontFace(GL_CCW);
// depth-testing defaults
glEnable(GL_DEPTH_TEST);
// glDepthFunc(GL_LESS);
// depth-writing defaults
// glDepthMask(GL_TRUE);
// seamless cubemaps
// glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
glViewport(0, 0, width, height);
// GLfloat bgColor[4]; glGetFloatv(GL_COLOR_CLEAR_VALUE, bgColor);
glClearColor(winbgcolor.r, winbgcolor.g, winbgcolor.b, has_transparent() ? 0 : winbgcolor.a); // @transparent
//glClearColor(0.15,0.15,0.15,1);
//glClearColor( clearColor.r, clearColor.g, clearColor.b, clearColor.a );
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
}
bool AppWindow::create_from_handle(void *handle, bool full_Screen, float canvas_scale, unsigned int flags, float window_scale) {
@ -510,32 +486,9 @@ int AppWindow::frame_begin() {
}
void AppWindow::frame_end() {
// flush batching systems that need to be rendered before frame swapping. order matters.
{
/*
font_goto(0, 0);
touch_flush();
sprite_flush();
// flush all debugdraw calls before swap
dd_ontop = 0;
ddraw_flush();
glClear(GL_DEPTH_BUFFER_BIT);
dd_ontop = 1;
ddraw_flush();
ui_render();
*/
}
}
void AppWindow::frame_swap() {
// glFinish();
/*
#ifndef __EMSCRIPTEN__
vsync(hz);
#endif
*/
glfwSwapBuffers(_window);
// emscripten_webgl_commit_frame();
}
@ -544,6 +497,10 @@ void AppWindow::shutdown() {
loop_exit(); // finish emscripten loop automatically
}
void AppWindow::reset_viewport() {
glViewport(0, 0, width, height);
}
int AppWindow::swap() {
// end frame
if (frame_count > 0) {

View File

@ -107,6 +107,8 @@ public:
void shutdown();
void reset_viewport();
Vector2 dpi();
enum CURSOR_SHAPES {