From ca535d4a70396b39e7749b2fc7d053f40b7d6d24 Mon Sep 17 00:00:00 2001 From: Love Billenius Date: Fri, 2 Aug 2024 15:29:51 +0200 Subject: [PATCH] init and ttf --- CMakeLists.txt | 2 ++ src/Game.cpp | 30 +++++++++++++++++++++++++++++- src/Game.hpp | 3 +++ vcpkg.json | 5 ++++- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bea09e..de3e610 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ if (NOT DEFINED CMAKE_TOOLCHAIN_FILE) endif () find_package(SDL2 CONFIG REQUIRED) +find_package(SDL2_ttf CONFIG REQUIRED) find_package(CURL REQUIRED) add_executable(hang_man src/main.cpp @@ -21,5 +22,6 @@ add_executable(hang_man src/main.cpp target_link_libraries(hang_man PRIVATE SDL2::SDL2 SDL2::SDL2main + SDL2_ttf::SDL2_ttf CURL::libcurl ) diff --git a/src/Game.cpp b/src/Game.cpp index f5357b9..5b644ec 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -1,7 +1,35 @@ +#include #include "Game.hpp" #include "SDL.h" +#include "SDL_ttf.h" void Game::Run() { - SDL_ + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + std::cerr << "Failed to initialize SDL: " << SDL_GetError() << std::endl; + exit(-1); + } + if (TTF_Init() < 0) { + std::cerr << "Failed to initialize TTF: " << TTF_GetError() << std::endl; + exit(-1); + } + SDL_Window *window = SDL_CreateWindow("hang man", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_SIZE.x, + SCREEN_SIZE.y, 0); + if (window == nullptr) { + std::cerr << "Failed to create SDL_Window with error: " << SDL_GetError() << std::endl; + exit(-1); + } + SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); + if (renderer == nullptr) { + std::cerr << "Failed to create SDL_Renderer with error: " << SDL_GetError() << std::endl; + exit(-1); + } + SDL_RendererInfo rendererInfo; + if (SDL_GetRendererInfo(renderer, &rendererInfo) == 0) { + std::cout << "Using renderer: " << rendererInfo.name << std::endl; + } + + SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE); + SDL_RenderClear(renderer); + SDL_RenderPresent(renderer); } diff --git a/src/Game.hpp b/src/Game.hpp index ebe6bc6..4a6bc8e 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -1,5 +1,8 @@ #pragma once +#include + +const SDL_Point SCREEN_SIZE{800, 800}; class Game { diff --git a/vcpkg.json b/vcpkg.json index 0bfe902..91d346d 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -6,9 +6,12 @@ "dependencies": [ { "name": "sdl2", - "default-features": true, + "features": [ + "vulkan" + ], "version>=": "2.0.20" }, + "sdl2-ttf", "curl" ] }