This commit is contained in:
Benjamin Palko 2024-08-07 22:04:12 -04:00
parent ee6cba4be7
commit 3025671f4f
4 changed files with 13 additions and 16 deletions

View file

@ -1,20 +1,16 @@
cmake_minimum_required(VERSION 3.29.6)
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
set(GLFW_BUILD_WAYLAND ON)
set(GLFW_PLATFORM GLFW_PLATFORM_WAYLAND)
project(HelloWorld CXX)
find_package(fmt CONFIG REQUIRED)
find_package(glfw3 CONFIG REQUIRED)
find_package(glad CONFIG REQUIRED)
find_package(OpenGL REQUIRED)
add_executable(main src/main.cpp)
target_link_libraries(main PRIVATE fmt::fmt glfw glad::glad)
target_link_libraries(main PRIVATE fmt::fmt glfw OpenGL)

View file

@ -7,8 +7,8 @@ pkgs.llvmPackages.stdenv.mkDerivation {
buildInputs = with pkgs.buildPackages; [
fmt
glfw-wayland
libglvnd
libglvnd.dev
libGL
libGL.dev
];
# nativeBuildInputs is usually what you want -- tools you need to run
nativeBuildInputs = with pkgs.buildPackages; [

View file

@ -1,29 +1,33 @@
#include <fmt/core.h>
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <fmt/core.h>
int main() {
int supported = glfwPlatformSupported(GLFW_PLATFORM_WAYLAND);
fmt::print("Wayland support: {}\n", supported == GLFW_TRUE);
if (!glfwInit()) {
const char *description;
int code = glfwGetError(&description);
fmt::print("GLFW failed to init! {}", code);
fmt::print("GLFW failed to init! {} - {}\n", code, description);
return -1;
}
GLFWwindow *window =
glfwCreateWindow(640, 480, "HELLO WORLD!", glfwGetPrimaryMonitor(), NULL);
glfwCreateWindow(640, 480, "GLFW", glfwGetPrimaryMonitor(), NULL);
if (!window) {
glfwTerminate();
fmt::print("Window or OpenGL context creation failed");
fmt::print("Window or OpenGL context creation failed\n");
return -1;
}
glfwMakeContextCurrent(window);
glClearColor(0.4f, 0.3f, 0.4f, 0.0f);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window)) {
/* Render here */
// glClear(GL_COLOR_BUFFER_BIT);
/* Swap front and back buffers */
glfwSwapBuffers(window);

View file

@ -1,3 +0,0 @@
{
"dependencies": ["glad"]
}