[Bug 280278] After switching sdl20 to cmake, an error occurs in vulkan operation. Failed to create SDL window.
Date: Sun, 14 Jul 2024 15:20:48 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280278
Bug ID: 280278
Summary: After switching sdl20 to cmake, an error occurs in
vulkan operation. Failed to create SDL window.
Product: Ports & Packages
Version: Latest
Hardware: amd64
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: ports-bugs@FreeBSD.org
Reporter: a.hasumoto@gmail.com
When I checked the operation of the test program created with chatgpt using
sdl2 and vulkan, the following error occurred.
error ---------------------------------------
Failed to create SDL window.
source code ---------------------------------
#include <SDL2/SDL.h>
#include <SDL2/SDL_vulkan.h>
#include <vulkan/vulkan.h>
#include <iostream>
#include <stdexcept>
#include <cstdlib>
#include <vector>
const int WIDTH = 800;
const int HEIGHT = 600;
class VulkanApp {
public:
void run() {
initWindow();
initVulkan();
mainLoop();
cleanup();
}
private:
SDL_Window* window;
VkInstance instance;
void initWindow() {
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
throw std::runtime_error("Failed to initialize SDL.");
}
window = SDL_CreateWindow("Vulkan Triangle",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
WIDTH,
HEIGHT,
SDL_WINDOW_VULKAN);
if (!window) {
throw std::runtime_error("Failed to create SDL window.");
}
}
void initVulkan() {
createInstance();
// ここでさらに必要な初期化を行います
}
void createInstance() {
VkApplicationInfo appInfo{};
appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
appInfo.pApplicationName = "Vulkan Triangle";
appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.pEngineName = "No Engine";
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.apiVersion = VK_API_VERSION_1_0;
VkInstanceCreateInfo createInfo{};
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
createInfo.pApplicationInfo = &appInfo;
if (vkCreateInstance(&createInfo, nullptr, &instance) != VK_SUCCESS) {
throw std::runtime_error("Failed to create Vulkan instance.");
}
}
void mainLoop() {
bool quit = false;
SDL_Event event;
while (!quit) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
quit = true;
}
}
}
}
void cleanup() {
vkDestroyInstance(instance, nullptr);
SDL_DestroyWindow(window);
SDL_Quit();
}
};
int main() {
VulkanApp app;
try {
app.run();
} catch (const std::exception& e) {
std::cerr << e.what() << std::endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
------------------------------------------------
--
You are receiving this mail because:
You are the assignee for the bug.