diff --git a/src/DivaGL/auth_3d.cpp b/src/DivaGL/auth_3d.cpp index 2435596..53a9b3d 100644 --- a/src/DivaGL/auth_3d.cpp +++ b/src/DivaGL/auth_3d.cpp @@ -502,7 +502,7 @@ HOOK(void, FASTCALL, auth_3d_m_object_hrc_disp, 0x00000001401D0760, auth_3d_m_ob for (auth_3d_object_instance& i : moh->instance) { if (!i.model_transform.visible) - return; + continue; mdl::ObjFlags flags = mdl::OBJ_SSS; shadow_type_enum shadow_type = SHADOW_CHARA; diff --git a/src/DivaGL/render_manager.cpp b/src/DivaGL/render_manager.cpp index 3e0fefd..2068a9f 100644 --- a/src/DivaGL/render_manager.cpp +++ b/src/DivaGL/render_manager.cpp @@ -888,7 +888,7 @@ namespace rndr { glViewportDLL(0, 0, rctx->sprite_width, rctx->sprite_height); if (multisample && multisample_framebuffer) { - glBindFramebuffer(GL_FRAMEBUFFER, multisample_framebuffer); + gl_state_bind_framebuffer(multisample_framebuffer); gl_state_enable_multisample(); glClearColorDLL(0.0f, 0.0f, 0.0f, 0.0f); glClearDLL(GL_COLOR_BUFFER_BIT); @@ -909,19 +909,20 @@ namespace rndr { gl_state_enable_depth_test(); if (multisample && multisample_framebuffer) { - glBindFramebuffer(GL_FRAMEBUFFER, 0); + gl_state_bind_framebuffer(0); gl_state_disable_multisample(); - gl_state_bind_read_framebuffer(multisample_framebuffer); - glBlitFramebuffer(0, 0, width, height, - 0, 0, width, height, GL_COLOR_BUFFER_BIT, GL_NEAREST); - gl_state_bind_read_framebuffer(0); + fbo_blit(multisample_framebuffer, 0, + 0, 0, rctx->sprite_width, rctx->sprite_height, + rctx->screen_x_offset, rctx->screen_y_offset, + rctx->sprite_width, rctx->sprite_height, GL_COLOR_BUFFER_BIT, GL_NEAREST); } + else + fbo_blit(rctx->screen_buffer.fbos[0], 0, + 0, 0, rctx->sprite_width, rctx->sprite_height, + rctx->screen_x_offset, rctx->screen_y_offset, + rctx->sprite_width, rctx->sprite_height, GL_COLOR_BUFFER_BIT, GL_LINEAR); gl_state_get_error(); - fbo_blit(rctx->screen_buffer.fbos[0], 0, - 0, 0, rctx->sprite_width, rctx->sprite_height, - rctx->screen_x_offset, rctx->screen_y_offset, - rctx->sprite_width, rctx->sprite_height, GL_COLOR_BUFFER_BIT, GL_LINEAR); shader::unbind(); gl_state_bind_framebuffer(0); gl_state_end_event();