Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions src/02-events/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Project Info

cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
cmake_policy(VERSION 3.18)
project(WindowEvents
VERSION 1.0.0.0
LANGUAGES C CXX
)

# =============================================================

# CMake Settings

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_SUPPRESS_REGENERATION true)
set(DCMAKE_GENERATOR_PLATFORM "x64")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
if(NOT CMAKE_DEBUG_POSTFIX)
set(CMAKE_DEBUG_POSTFIX d)
endif()

# =============================================================

# Dependencies

# CrossWindow
add_subdirectory(../../external/crosswindow ${CMAKE_BINARY_DIR}/crosswindow)
set_property(TARGET CrossWindow PROPERTY FOLDER "Dependencies")

# =============================================================

# Sources

file(GLOB_RECURSE FILE_SOURCES RELATIVE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/src/XMain.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/${XGFX_API}Renderer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/${XGFX_API}Renderer.mm
${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
)

# Solution Filters
foreach(source IN LISTS FILE_SOURCES)
get_filename_component(source_path "${source}" PATH)
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
string(REPLACE "src" "" source_path_final "${source_path_msvc}")
source_group("${source_path_final}" FILES "${source}")
endforeach()

# =============================================================

# Finalize App

xwin_add_executable(
${PROJECT_NAME}
"${FILE_SOURCES}"
)

# =============================================================

# Finish Dependencies

target_link_libraries(
${PROJECT_NAME}
CrossWindow
)

# =============================================================

# Finish Settings

# Change output dir to bin
set_target_properties(${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
# Change working directory to bin
if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
endif()
3 changes: 2 additions & 1 deletion src/02-events/src/XMain.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "CrossWindow/CrossWindow.h"
#include "Renderer.h"
//#include "Renderer.h"

void xmain(int argc, const char** argv)
{
Expand Down Expand Up @@ -57,6 +57,7 @@ void xmain(int argc, const char** argv)
if (event.type == xwin::EventType::Close)
{
window.close();
isRunning = false;
}

eventQueue.pop();
Expand Down
88 changes: 88 additions & 0 deletions src/03-open-save-alert/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Project Info

cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
cmake_policy(VERSION 3.18)
project(WindowOpenSaveAlert
VERSION 1.0.0.0
LANGUAGES C CXX
)

# =============================================================

# CMake Settings

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_SUPPRESS_REGENERATION true)
set(DCMAKE_GENERATOR_PLATFORM "x64")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
if(NOT CMAKE_DEBUG_POSTFIX)
set(CMAKE_DEBUG_POSTFIX d)
endif()

# =============================================================

# Dependencies

# CrossWindow
add_subdirectory(../../external/crosswindow ${CMAKE_BINARY_DIR}/crosswindow)
set_property(TARGET CrossWindow PROPERTY FOLDER "Dependencies")

# =============================================================

# Sources

file(GLOB_RECURSE FILE_SOURCES RELATIVE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/src/XMain.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/${XGFX_API}Renderer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/${XGFX_API}Renderer.mm
${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
)

# Solution Filters
foreach(source IN LISTS FILE_SOURCES)
get_filename_component(source_path "${source}" PATH)
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
string(REPLACE "src" "" source_path_final "${source_path_msvc}")
source_group("${source_path_final}" FILES "${source}")
endforeach()

# =============================================================

# Finalize App

xwin_add_executable(
${PROJECT_NAME}
"${FILE_SOURCES}"
)

# =============================================================

# Finish Dependencies

target_link_libraries(
${PROJECT_NAME}
CrossWindow
)

# =============================================================

# Finish Settings

# Change output dir to bin
set_target_properties(${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
# Change working directory to bin
if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
endif()
36 changes: 23 additions & 13 deletions src/03-open-save-alert/src/XMain.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#include "CrossWindow/CrossWindow.h"
#include "Renderer.h"
#include "CrossWindow/Common/Dialogs.h"
//#include "Renderer.h"

void xmain(int argc, const char** argv)
{
Expand Down Expand Up @@ -35,20 +36,29 @@ void xmain(int argc, const char** argv)
const xwin::MouseInputData data = event.data.mouseInput;
if (data.state == xwin::ButtonState::Released)
{
if (data.button == xwin::MouseInput::Left)
{
// 💾 Open File Save Dialog
}
if (data.button == xwin::MouseInput::Left)
{
// 💾 Open File Save Dialog
xwin::OpenSaveDialogDesc desc {};
std::string path;
showOpenDialog(desc, path);
}

if (data.button == xwin::MouseInput::Right)
{
// 📂 Open File Open Dialog
}
if (data.button == xwin::MouseInput::Right)
{
// 📂 Open File Open Dialog
xwin::OpenSaveDialogDesc desc {};
std::string path;
showSaveDialog(desc, path);
}

if (data.button == xwin::MouseInput::Middle)
{
// ❗ Open Alert
}
if (data.button == xwin::MouseInput::Middle)
{
// ❗ Open Alert
xwin::MessageDesc desc {};
desc.type = xwin::MessageType::Warning;
showMessageBox(desc);
}
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/04-cross-platform-hello-triangle/src/Renderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ class Renderer

uint32_t mIndexBufferData[3] = { 0, 1, 2 };

std::chrono::time_point<std::chrono::steady_clock> tStart, tEnd;
std::chrono::time_point<std::chrono::high_resolution_clock> tStart, tEnd;
float mElapsedTime = 0.0f;

// Uniform data
Expand Down Expand Up @@ -351,4 +351,4 @@ class Renderer
void* mCommandBuffer;

#endif
};
};