Anonymous
Совместное использование контекста между двумя окнами в SFML
Сообщение
Anonymous » 14 янв 2025, 13:39
При создании двух окон с использованием sfml я обнаружил, что только в каждом из окон отображается треугольник в зависимости от функции window.setActive(), вызванной в приведенном ниже коде. Одно из окон полностью однотонное. Вот код, который воспроизвел проблему
Код: Выделить всё
#include
#include
#include
// Vertex Shader Source
const char* vertexShaderSource = R"(
#version 460 core
layout (location = 0) in vec3 position;
void main()
{
gl_Position = vec4(position, 1.0);
}
)";
// Fragment Shader Source
const char* fragmentShaderSource = R"(
#version 460 core
out vec4 color;
void main()
{
color = vec4(0.2, 0.8, 0.2, 1.0); // Green color
}
)";
// Triangle Vertex Data
const float triangleVertices[] = {
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.0f, 0.5f, 0.0f
};
// Compile and link shaders
GLuint CompileShaderProgram() {
GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertexShader, 1, &vertexShaderSource, nullptr);
glCompileShader(vertexShader);
GLint success;
glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success);
if (!success) {
char infoLog[512];
glGetShaderInfoLog(vertexShader, 512, nullptr, infoLog);
std::cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/79354093/context-sharing-between-2-windows-in-sfml[/url]
1736851158
Anonymous
При создании двух окон с использованием sfml я обнаружил, что только в каждом из окон отображается треугольник в зависимости от функции window.setActive(), вызванной в приведенном ниже коде. Одно из окон полностью однотонное. Вот код, который воспроизвел проблему [code]#include #include #include // Vertex Shader Source const char* vertexShaderSource = R"( #version 460 core layout (location = 0) in vec3 position; void main() { gl_Position = vec4(position, 1.0); } )"; // Fragment Shader Source const char* fragmentShaderSource = R"( #version 460 core out vec4 color; void main() { color = vec4(0.2, 0.8, 0.2, 1.0); // Green color } )"; // Triangle Vertex Data const float triangleVertices[] = { -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f }; // Compile and link shaders GLuint CompileShaderProgram() { GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER); glShaderSource(vertexShader, 1, &vertexShaderSource, nullptr); glCompileShader(vertexShader); GLint success; glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success); if (!success) { char infoLog[512]; glGetShaderInfoLog(vertexShader, 512, nullptr, infoLog); std::cerr Подробнее здесь: [url]https://stackoverflow.com/questions/79354093/context-sharing-between-2-windows-in-sfml[/url]