Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 18
1

окно ехе-шника тут же исчезает

25.08.2021, 22:12. Показов 2184. Ответов 2

Author24 — интернет-сервис помощи студентам
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
 
int main(void)
{
    GLFWwindow* window;
 
    /* Initialize the library */
    if (!glfwInit())
        return -1;
 
    /* Create a windowed mode window and its OpenGL context */
    window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
    if (!window)
    {
        glfwTerminate();
        return -1;
    }
 
    /* Make the window's context current */
    glfwMakeContextCurrent(window);
 
    gladLoadGL();
    if (!gladLoadGL()) {
        std::cout << "eror init glad";
        return -1;
    }
 
    glClearColor(0,1,0,1);
 
    /* Loop until the user closes the window */
    //while (!glfwWindowShouldClose(window))
    {
        /* Render here */
        glClear(GL_COLOR_BUFFER_BIT);
 
        /* Swap front and back buffers */
        glfwSwapBuffers(window);
 
        /* Poll for and process events */
        glfwPollEvents();
    }
 
    
    glfwTerminate();
    return 0;
}


только начал знакомиться с этими библиотеками, подскажите, если где накосячил.
окно появляется на секунду, и ничего не отрисовав исчезает.
пробовал ставить задержку, но приложение просто висит (не отвечает).
может ли это быть связано с тем, что я работаю со встроенного в процессор видео ядра?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2021, 22:12
Ответы с готовыми решениями:

Командное окно высвечивается и тут же исчезает
после указания файла, командное окно высвечивается и тут же исчезает, как сделать чтоб оно не...

Окно программы появляется и тут же исчезает (CodeBlock)
Дабы не плодить однотипные темы на форуме, отпишу суть проблемы в этой. Винда 7, установил gcc...

Де компиляция ехе"шника
Добрый день. Хотел бы спросить, имеется программа для тестирования написанная на Делфи с...

Извлечь иконку с ехе-шника
по-моему все перепутал =) подскажите пож, как правильно ... HMODULE hLib; void __fastcall...

2
Модератор
Эксперт Java
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,332
25.08.2021, 22:19 2
Лучший ответ Сообщение было отмечено sasdsf как решение

Решение

Цитата Сообщение от sasdsf Посмотреть сообщение
C++
33
//while (!glfwWindowShouldClose(window))
У вас нужный цикл для поддержания окна закоментирован
1
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,321
Записей в блоге: 147
26.08.2021, 14:37 3
Лучший ответ Сообщение было отмечено sasdsf как решение

Решение

Цитата Сообщение от sasdsf Посмотреть сообщение
может ли это быть связано с тем, что я работаю со встроенного в процессор видео ядра?
С этим проблемы могут возникнуть дальше при использовании настроек:
C++
1
2
3
4
5
6
7
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
 
#ifdef __APPLE__
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE);
#endif
Например, у меня на ноутбуке две видеокарты:
  1. Встроенная слабая (Intel HD Graphics 3000), на которой максимум, на данный момент, можно обновить драйвера до OpenGL 3.1. Эта видеокарта используется поумолчанию для запусков EXE, чтобы экономить энергию. Этим занимается программа Optimus, по крайней мере, на моём ноутбуке Asus K53SV
  2. Более мощная - Nvidia Geforce GT 540M. Запуск с этой видеокартой можно сделать принудительным из кода.

Чтобы сделать принудительный запуск с более мощной видеокартой и при этому учесть карты двух производителей: Geforce и Radeon, то нужно добавить эти строки кода в файл main.cpp:

C++
1
2
3
4
5
#ifdef _WIN32
#include <windows.h>
extern "C" __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
extern "C" __declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001;
#endif
Без этого кода у меня следующий простой пример вылетает на этапе создания окна с сообщение в консоль: "Failed to create a GLFW window"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#ifdef _WIN32
#include <windows.h>
extern "C" __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
extern "C" __declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001;
#endif
 
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
 
int main()
{
    // Initialize the GLFW library
    if (glfwInit() == GLFW_FALSE)
    {
        std::cerr << "Failed to initialize the GLFW library" << std::endl;
        return 1;
    }
 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
 
#ifdef __APPLE__
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE);
#endif
 
    // Create a GLFW window
    const int WIN_WIDTH = 500;
    const int WIN_HEIGHT = 500;
    GLFWwindow* window = glfwCreateWindow(
                WIN_WIDTH, WIN_HEIGHT, "Empty Window", nullptr, nullptr);
    if (window == nullptr)
    {
        std::cerr << "Failed to create a GLFW window" << std::endl;
        glfwTerminate();
        return 1;
    }
 
    glfwMakeContextCurrent(window);
 
    // Initialize the GLAD library
    if (!gladLoadGL())
    {
        std::cerr << "Failed to initialize the GLAD library" << std::endl;
        glfwTerminate();
        return 1;
    }
 
    glViewport(0, 0, WIN_WIDTH, WIN_HEIGHT);
 
    // Set a background color
    glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
 
    // Render loop
    while (!glfwWindowShouldClose(window))
    {
        if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
        {
            glfwSetWindowShouldClose(window, true);
        }
 
        glClear(GL_COLOR_BUFFER_BIT);
 
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
 
    glfwTerminate();
    return 0;
}
1
26.08.2021, 14:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2021, 14:37
Помогаю со студенческими работами здесь

Сделать изображения частью ехе-шника
Здравствуйте! Программа работает со множеством картинок (которые находятся в отдельной папке)...

Выгрузка ехе-шника из базы данных
Есть код который скачивает изображение из базы данных на жесткий диск. Как реализовать этот же...

Запуск .ехе-шника ДО входа в систему
Здрасьте. Грешу колхозом винды, поставил док от Winstep Nexus а ля макось, но если он запускается...

Уменьшить размер ехе-шника (Delphi XE)
Написал программу, скомпилил в Delphi 7 - 500КБ. Скомпилил такой же код в Delphi XE - 1,5МБ. Мягко...

Запуск ехе-шника на чистой машине
Написано приложение обработки БД Access, использован DAO. Что нужно поставить на чистую машину...

Ошибка при запуске ехе-шника
Вчера доделал свой проект(электронный учебник). добавил тесты и медиа плеер. работало все нормально...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru