Skip to content

Commit

Permalink
more changes
Browse files Browse the repository at this point in the history
  • Loading branch information
MegaMech committed Feb 24, 2025
1 parent 49836f6 commit 28b31bf
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 4 deletions.
8 changes: 6 additions & 2 deletions src/graphic/Fast3D/gfx_opengl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ static std::string build_fs_shader(const CCFeatures& cc_features) {
{ "core_opengl", false },
{ "texture", "texture2D" },
{ "vOutColor", "gl_FragData[0]" },
{ "vColourId", "gl_FragData[3]" },
{ "vColourId", "gl_FragData[2]" },
#endif
};
processor.populate(context);
Expand Down Expand Up @@ -484,6 +484,7 @@ static struct ShaderProgram* gfx_opengl_create_and_load_new_shader(uint64_t shad
GLuint shader_program = glCreateProgram();
glAttachShader(shader_program, vertex_shader);
glAttachShader(shader_program, fragment_shader);
glBindFragDataLocation(shader_program, GL_COLOR_ATTACHMENT2, "vColourId");
glLinkProgram(shader_program);

size_t cnt = 0;
Expand Down Expand Up @@ -816,7 +817,7 @@ static void gfx_opengl_update_framebuffer_parameters(int fb_id, uint32_t width,
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, fb.clrbuf, 0);
} else {
printf("\nFB ID %d\n\n", fb_id);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT3, GL_TEXTURE_2D, fb.clrbuf, 0);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT2, GL_TEXTURE_2D, fb.clrbuf, 0);
}
} else {
glBindRenderbuffer(GL_RENDERBUFFER, fb.clrbuf_msaa);
Expand All @@ -825,6 +826,9 @@ static void gfx_opengl_update_framebuffer_parameters(int fb_id, uint32_t width,
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, fb.clrbuf_msaa);
}
}

GLenum att[] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT2 };
glDrawBuffers(2, att);

if (has_depth_buffer &&
(fb.width != width || fb.height != height || fb.msaa_level != msaa_level || !fb.has_depth_buffer)) {
Expand Down
9 changes: 8 additions & 1 deletion src/graphic/Fast3D/gfx_pc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4137,6 +4137,7 @@ void gfx_init(struct GfxWindowManagerAPI* wapi, struct GfxRenderingAPI* rapi, co

colour_id_data.resize(width * height * 4);
game_framebuffer_colour_id = gfx_rapi->create_framebuffer();
gfx_rapi->update_framebuffer_parameters(0, width, height, 1, false, false, false, false, (uint8_t*)colour_id_data.data());

gfx_native_dimensions.width = SCREEN_WIDTH;
gfx_native_dimensions.height = SCREEN_HEIGHT;
Expand Down Expand Up @@ -4267,9 +4268,15 @@ void gfx_run(Gfx* commands, const std::unordered_map<Mtx*, MtxF>& mtx_replacemen
gfx_rapi->start_draw_to_framebuffer(game_renders_to_framebuffer ? game_framebuffer : 0,
(float)gfx_current_dimensions.height / gfx_native_dimensions.height);

// #define VIEW_COLOUR_ID_FRAMEBUFFER
#define VIEW_COLOUR_ID_FRAMEBUFFER
#ifdef VIEW_COLOUR_ID_FRAMEBUFFER

gfx_rapi->start_draw_to_framebuffer(game_framebuffer_colour_id, gfx_current_dimensions.height / gfx_native_dimensions.height);
// test colours to colour id (this worked at one point but not now)
for (size_t i = 0; i < 1000; i++) {
colour_id_data[i] = 0x00FF00FF;
}

#endif
gfx_rapi->clear_framebuffer(false, true);
g_rdp.viewport_or_scissor_changed = true;
Expand Down
2 changes: 1 addition & 1 deletion src/graphic/Fast3D/shaders/opengl/default.shader.fs
Original file line number Diff line number Diff line change
Expand Up @@ -211,5 +211,5 @@ void main() {
@{vOutColor} = fromLinear(@{vOutColor});
@end

@{vColourId} = vec4(0.8, 0.2, 0.3, 1.0);
@{vColourId} = colour_id;
}

0 comments on commit 28b31bf

Please sign in to comment.