minimal!
This commit is contained in:
parent
ee6cba4be7
commit
3025671f4f
4 changed files with 13 additions and 16 deletions
|
|
@ -1,20 +1,16 @@
|
||||||
cmake_minimum_required(VERSION 3.29.6)
|
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_COMPILER clang++)
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||||
|
|
||||||
set(GLFW_BUILD_WAYLAND ON)
|
|
||||||
set(GLFW_PLATFORM GLFW_PLATFORM_WAYLAND)
|
|
||||||
|
|
||||||
project(HelloWorld CXX)
|
project(HelloWorld CXX)
|
||||||
|
|
||||||
find_package(fmt CONFIG REQUIRED)
|
find_package(fmt CONFIG REQUIRED)
|
||||||
find_package(glfw3 CONFIG REQUIRED)
|
find_package(glfw3 CONFIG REQUIRED)
|
||||||
find_package(glad CONFIG REQUIRED)
|
find_package(OpenGL REQUIRED)
|
||||||
|
|
||||||
add_executable(main src/main.cpp)
|
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)
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ pkgs.llvmPackages.stdenv.mkDerivation {
|
||||||
buildInputs = with pkgs.buildPackages; [
|
buildInputs = with pkgs.buildPackages; [
|
||||||
fmt
|
fmt
|
||||||
glfw-wayland
|
glfw-wayland
|
||||||
libglvnd
|
libGL
|
||||||
libglvnd.dev
|
libGL.dev
|
||||||
];
|
];
|
||||||
# nativeBuildInputs is usually what you want -- tools you need to run
|
# nativeBuildInputs is usually what you want -- tools you need to run
|
||||||
nativeBuildInputs = with pkgs.buildPackages; [
|
nativeBuildInputs = with pkgs.buildPackages; [
|
||||||
|
|
|
||||||
14
src/main.cpp
14
src/main.cpp
|
|
@ -1,29 +1,33 @@
|
||||||
#include <fmt/core.h>
|
|
||||||
#include <glad/glad.h>
|
|
||||||
#include <GLFW/glfw3.h>
|
#include <GLFW/glfw3.h>
|
||||||
|
#include <fmt/core.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
|
||||||
|
int supported = glfwPlatformSupported(GLFW_PLATFORM_WAYLAND);
|
||||||
|
fmt::print("Wayland support: {}\n", supported == GLFW_TRUE);
|
||||||
|
|
||||||
if (!glfwInit()) {
|
if (!glfwInit()) {
|
||||||
const char *description;
|
const char *description;
|
||||||
int code = glfwGetError(&description);
|
int code = glfwGetError(&description);
|
||||||
fmt::print("GLFW failed to init! {}", code);
|
fmt::print("GLFW failed to init! {} - {}\n", code, description);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
GLFWwindow *window =
|
GLFWwindow *window =
|
||||||
glfwCreateWindow(640, 480, "HELLO WORLD!", glfwGetPrimaryMonitor(), NULL);
|
glfwCreateWindow(640, 480, "GLFW", glfwGetPrimaryMonitor(), NULL);
|
||||||
|
|
||||||
if (!window) {
|
if (!window) {
|
||||||
glfwTerminate();
|
glfwTerminate();
|
||||||
fmt::print("Window or OpenGL context creation failed");
|
fmt::print("Window or OpenGL context creation failed\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
glfwMakeContextCurrent(window);
|
glfwMakeContextCurrent(window);
|
||||||
|
glClearColor(0.4f, 0.3f, 0.4f, 0.0f);
|
||||||
|
|
||||||
/* Loop until the user closes the window */
|
/* Loop until the user closes the window */
|
||||||
while (!glfwWindowShouldClose(window)) {
|
while (!glfwWindowShouldClose(window)) {
|
||||||
/* Render here */
|
/* Render here */
|
||||||
|
// glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
/* Swap front and back buffers */
|
/* Swap front and back buffers */
|
||||||
glfwSwapBuffers(window);
|
glfwSwapBuffers(window);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"dependencies": ["glad"]
|
|
||||||
}
|
|
||||||
Loading…
Add table
Reference in a new issue