diff --git a/LICENSE b/LICENSE
index a505139..d54032a 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2025 Harvey Fong
+Copyright (c) 2026 Harvey Fong
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/makefile b/Makefile
similarity index 59%
rename from makefile
rename to Makefile
index 31d0255..eecee56 100644
--- a/makefile
+++ b/Makefile
@@ -5,45 +5,44 @@ PLATFORM = $(shell uname)
BUILD_TYPE ?= release# Default to release build if not specified
# Common paths
-BELLA_SDK_PATH = ../bella_engine_sdk
-RAYGUI_PATH = ../raygui
-RAYLIB_PATH = ../raylib
+BELLA_SDK_PATH = $(abspath ../bella_engine_sdk)
+RAYGUI_PATH = $(abspath ../raygui)
+RAYLIB_PATH = $(abspath ../raylib)
# Path to dynamic raylib library
-RAYLIB_DYLIB_PATH = ../raylib/build/raylib
+RAYLIB_DYLIB_PATH = $(abspath ../raylib/build/raylib)
OBJ_DIR = obj/$(PLATFORM)/$(BUILD_TYPE)
BIN_DIR = bin/$(PLATFORM)/$(BUILD_TYPE)
OUTPUT_FILE = $(BIN_DIR)/$(EXECUTABLE_NAME)
# Platform-specific configuration
ifeq ($(PLATFORM), Darwin)
- # macOS configuration
- SDK_LIB_EXT = dylib
- SDK_LIB_FILE = lib$(BELLA_SDK_NAME).$(SDK_LIB_EXT)
- # Dynamic raylib library
- RAYLIB_LIB_NAME = libraylib.$(SDK_LIB_EXT)
- MACOS_SDK_PATH = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
+ SDK_LIB_EXT = dylib
+ SDK_LIB_FILE = lib$(BELLA_SDK_NAME).$(SDK_LIB_EXT)
+ # Dynamic raylib library
+ RAYLIB_LIB_NAME = libraylib.$(SDK_LIB_EXT)
+ MACOS_SDK_PATH = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
- # Compiler settings
- CC = clang
- CXX = clang++
+ # Compiler settings
+ CC = clang
+ CXX = clang++
- # Architecture flags
- ARCH_FLAGS = -arch x86_64 -arch arm64 -mmacosx-version-min=15.0 -isysroot $(MACOS_SDK_PATH)
+ # Architecture flags
+ ARCH_FLAGS = -arch x86_64 -arch arm64 -mmacosx-version-min=15.0 -isysroot $(MACOS_SDK_PATH)
- # Include paths
- INCLUDE_PATHS = -I$(BELLA_SDK_PATH)/src \
+ # Include paths
+ INCLUDE_PATHS = -I$(BELLA_SDK_PATH)/src \
-I$(RAYGUI_PATH)/src \
-I$(RAYLIB_PATH)/src
- # Library paths
- SDK_LIB_PATH = $(BELLA_SDK_PATH)/lib
- # Updated path to dynamic raylib library
- RAYLIB_LIB_PATH = $(RAYLIB_DYLIB_PATH)
- LIB_PATHS = -L$(SDK_LIB_PATH) -L$(RAYLIB_LIB_PATH)
+ # Library paths
+ SDK_LIB_PATH = $(BELLA_SDK_PATH)/lib
+ # Updated path to dynamic raylib library
+ RAYLIB_LIB_PATH = $(RAYLIB_DYLIB_PATH)
+ LIB_PATHS = -L$(SDK_LIB_PATH) -L$(RAYLIB_LIB_PATH)
- # Platform-specific libraries
- # For dynamic library, we don't need to explicitly link all of raylib's dependencies
- LIBRARIES = -l$(BELLA_SDK_NAME) \
+ # Platform-specific libraries
+ # For dynamic library, we don't need to explicitly link all of raylib's dependencies
+ LIBRARIES = -l$(BELLA_SDK_NAME) \
-lraylib \
-lm \
-ldl \
@@ -55,8 +54,8 @@ ifeq ($(PLATFORM), Darwin)
-framework CoreVideo \
-framework Foundation
- # Linking flags
- LINKER_FLAGS = -mmacosx-version-min=15.0 \
+ # Linking flags
+ LINKER_FLAGS = -mmacosx-version-min=15.0 \
-isysroot $(MACOS_SDK_PATH) \
-framework Cocoa \
-framework IOKit \
@@ -69,36 +68,36 @@ ifeq ($(PLATFORM), Darwin)
-rpath @loader_path \
-weak_library $(SDK_LIB_PATH)/libvulkan.dylib
else
- # Linux configuration
- SDK_LIB_EXT = so
- SDK_LIB_FILE = lib$(BELLA_SDK_NAME).$(SDK_LIB_EXT)
- # Dynamic raylib library
- RAYLIB_LIB_NAME = libraylib.so.550
- RAYLIB_LIB_SONAME = libraylib.so.550
- RAYLIB_LIB_LINK = libraylib.so
+ # Linux configuration
+ SDK_LIB_EXT = so
+ SDK_LIB_FILE = lib$(BELLA_SDK_NAME).$(SDK_LIB_EXT)
+ # Dynamic raylib library
+ RAYLIB_LIB_NAME = libraylib.so.550
+ RAYLIB_LIB_SONAME = libraylib.so.550
+ RAYLIB_LIB_LINK = libraylib.so
- # Compiler settings
- CC = gcc
- CXX = g++
+ # Compiler settings
+ CC = gcc
+ CXX = g++
- # Architecture flags
- ARCH_FLAGS = -m64 -D_FILE_OFFSET_BITS=64
+ # Architecture flags
+ ARCH_FLAGS = -m64 -D_FILE_OFFSET_BITS=64
- # Include paths
- INCLUDE_PATHS = -I$(BELLA_SDK_PATH)/src \
+ # Include paths
+ INCLUDE_PATHS = -I$(BELLA_SDK_PATH)/src \
-I$(RAYGUI_PATH)/src \
-I$(RAYLIB_PATH)/src
- # Library paths
- SDK_LIB_PATH = $(BELLA_SDK_PATH)/lib
- # Updated path to dynamic raylib library
- RAYLIB_LIB_PATH = $(RAYLIB_DYLIB_PATH)
- SYSTEM_LIB_PATH = /usr/lib/x86_64-linux-gnu/
- LIB_PATHS = -L$(SDK_LIB_PATH) -L$(RAYLIB_LIB_PATH)
+ # Library paths
+ SDK_LIB_PATH = $(BELLA_SDK_PATH)/lib
+ # Updated path to dynamic raylib library
+ RAYLIB_LIB_PATH = $(RAYLIB_DYLIB_PATH)
+ SYSTEM_LIB_PATH = /usr/lib/x86_64-linux-gnu/
+ LIB_PATHS = -L$(SDK_LIB_PATH) -L$(RAYLIB_LIB_PATH)
- # Platform-specific libraries
- # For dynamic library, we don't need to explicitly link all dependencies of raylib
- LIBRARIES = -l$(BELLA_SDK_NAME) \
+ # Platform-specific libraries
+ # For dynamic library, we don't need to explicitly link all dependencies of raylib
+ LIBRARIES = -l$(BELLA_SDK_NAME) \
-lraylib \
-lm \
-ldl \
@@ -108,8 +107,8 @@ else
-lGL \
-lvulkan
- # Linking flags
- LINKER_FLAGS = -m64 \
+ # Linking flags
+ LINKER_FLAGS = -m64 \
-fvisibility=hidden \
-O3 \
-Wl,-rpath,'$$ORIGIN' \
@@ -118,19 +117,19 @@ endif
# Build type specific flags
ifeq ($(BUILD_TYPE), debug)
- ifeq ($(PLATFORM), Darwin)
+ ifeq ($(PLATFORM), Darwin)
+ CPP_DEFINES = -D_DEBUG -DDL_USE_SHARED
+ else
CPP_DEFINES = -D_DEBUG -DDL_USE_SHARED
- else
- CPP_DEFINES = -D_DEBUG -DDL_USE_SHARED
- endif
- COMMON_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -g -O0 $(INCLUDE_PATHS)
+ endif
+ COMMON_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -g -O0 $(INCLUDE_PATHS)
else
- ifeq ($(PLATFORM), Darwin)
- CPP_DEFINES = -DNDEBUG=1 -DDL_USE_SHARED
- else
- CPP_DEFINES = -DNDEBUG=1 -DDL_USE_SHARED
- endif
- COMMON_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -O3 $(INCLUDE_PATHS)
+ ifeq ($(PLATFORM), Darwin)
+ CPP_DEFINES = -DNDEBUG=1 -DDL_USE_SHARED
+ else
+ CPP_DEFINES = -DNDEBUG=1 -DDL_USE_SHARED
+ endif
+ COMMON_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -O3 $(INCLUDE_PATHS)
endif
# Language-specific flags
@@ -150,14 +149,16 @@ $(OUTPUT_FILE): $(OBJECT_FILES)
@mkdir -p $(@D)
$(CXX) -o $@ $^ $(LINKER_FLAGS) $(LIB_PATHS) $(LIBRARIES)
@echo "Copying libraries to $(BIN_DIR)..."
- @cp $(SDK_LIB_PATH)/$(SDK_LIB_FILE) $(BIN_DIR)/$(SDK_LIB_FILE)
+ # Copy raylib dylib files preserving symbolic links
+ # Copy bella and dl_usd_ms libraries to the binary directory
+ @cp -P $(SDK_LIB_PATH)/libbella_engine_sdk.$(SDK_LIB_EXT) $(BIN_DIR)/
+ @cp -P $(SDK_LIB_PATH)/libdl_usd_ms.$(SDK_LIB_EXT) $(BIN_DIR)/
+
ifeq ($(PLATFORM), Darwin)
- @# Copy raylib dylib files preserving symbolic links
@cp -P $(RAYLIB_LIB_PATH)/libraylib.5.5.0.dylib $(BIN_DIR)/
@cp -P $(RAYLIB_LIB_PATH)/libraylib.550.dylib $(BIN_DIR)/
@cp -P $(RAYLIB_LIB_PATH)/libraylib.dylib $(BIN_DIR)/
else
- @# Copy raylib shared library files for Linux
@cp $(RAYLIB_LIB_PATH)/$(RAYLIB_LIB_NAME) $(BIN_DIR)/
@ln -sf $(RAYLIB_LIB_NAME) $(BIN_DIR)/$(RAYLIB_LIB_LINK)
endif
@@ -171,6 +172,7 @@ clean:
rm -f $(OBJ_DIR)/*.o
rm -f $(OUTPUT_FILE)
rm -f $(BIN_DIR)/$(SDK_LIB_FILE)
+
ifeq ($(PLATFORM), Darwin)
rm -f $(BIN_DIR)/libraylib*.dylib
else
diff --git a/README.md b/README.md
index a20c433..2a28946 100644
--- a/README.md
+++ b/README.md
@@ -13,82 +13,105 @@ workdir/
├── bella_engine_sdk/
├── raylib/
├── raygui/
-└── poomer-raylib-bella_onimage/
+├── poomer-raylib-bella_onimage/
+└── cmake/ (macos)
```
-# MacOS
+# Ubuntu Linux x64
```
-cd ~
-mkdir workdir
-cd workdir
-curl -LO https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6-macos-universal.dmg
-open cmake-3.31.6-macos-universal.dmg
-curl -LO https://downloads.bellarender.com/bella_engine_sdk-24.6.0.dmg
-hdiutil attach bella_engine_sdk-24.6.0.dmg
-cp -R /Volumes/Bella\ Engine\ SDK\ 24.6.0/bella_engine_sdk .
-git clone https://github.com/raysan5/raylib.git
-mkdir -p raylib/build
-cd raylib/build
-/Applications/CMake.app/Contents/bin/cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release ..
-make -j4
-cd ../..
+sudo apt install -y build-essential git cmake mesa-vulkan-drivers libgl1 libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev mesa-vulkan-drivers
+mkdir workdir && cd workdir
+mkdir raylib raygui poomer-raylib-bella_onimage
+
+# Install Bella SDK
+wget https://downloads.bellarender.com/bella_engine_sdk-25.3.0-linux.tar.gz
+tar -xvf bella_engine_sdk-25.3.0-linux.tar.gz
+
+# Build raylib
+cd raylib
+git clone https://github.com/raysan5/raylib.git .
+cmake -B ./build -DBUILD_SHARED_LIBS=ON -DUSE_EXTERNAL_GLFW=OFF
+cmake --build ./build -j$(nproc)
+
+# Install raygui
+cd ..
git clone https://github.com/raysan5/raygui.git
+
+# Build poomer-raylib-bella_onimage
git clone https://git.indoodle.com/oomer/oom.git
-git clone https://git.indoodle.com/oomer/poomer-raylib-bella_onimage.git
cd poomer-raylib-bella_onimage
-make
+git clone https://git.indoodle.com/oomer/poomer-raylib-bella_onimage.git .
+make -j$(nproc)
+bin/Linux/release/poomer-raylib-bella_onimage
+```
+
+## MacOS x64 and arm64
+```
+# Install xcode
+xcode-select --install
+
+mkdir workdir && cd workdir
+mkdir cmake raylib raygui poomer-raylib-bella_onimage
+
+# Install Bella SDK
+curl -O https://downloads.bellarender.com/bella_engine_sdk-25.3.0-macos.zip
+unzip bella_engine_sdk-25.3.0-macos.zip
+
+# Build cmake
+cd cmake
+git clone https://github.com/Kitware/CMake.git .
+./configure
+make -j$(sysctl -n hw.ncpu)
+
+# Build raylib
+cd ../raylib
+git clone https://github.com/raysan5/raylib.git .
+../cmake/bin/cmake -B ./build -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
+../cmake/bin/cmake --build ./build -j$(sysctl -n hw.ncpu)
+
+# Install raygui
+cd ..
+git clone https://github.com/raysan5/raygui.git
+
+# Build poomer-raylib-bella_onimage
+git clone https://git.indoodle.com/oomer/oom.git
+cd ../poomer-raylib-bella_onimage
+git clone https://git.indoodle.com/oomer/poomer-raylib-bella_onimage.git .
+make -j$(sysctl -n hw.ncpu)
bin/Darwin/release/poomer-raylib-bella_onimage
```
-# Linux
-```
-sudo apt install -y build-essential curl git cmake
-sudo apt install -y libx11-dev
-sudo apt install -y xorg-dev
-cd ~
-mkdir workdir
-cd workdir
-curl -LO https://downloads.bellarender.com/bella_engine_sdk-24.6.0.tar.gz
-tar -xvf bella_engine_sdk-24.6.0.tar.gz
-git clone https://github.com/raysan5/raylib.git
-mkdir -p raylib/build
-cd raylib/build
-cmake -DBUILD_SHARED_LIBS=ON -DUSE_EXTERNAL_GLFW=OFF ..
-make -j4
-cd ../..
-git clone https://github.com/raysan5/raygui.git
-git clone https://git.indoodle.com/oomer/oom.git
-git clone https://git.indoodle.com/oomer/poomer-raylib-bella_onimage.git
-cd poomer-raylib-bella_onimage
-make
-bin/Linux/release/poomer-raylib-bella_onimage -h
-```
+## Windows x64
+- Download Visual Studio Community Edition
+- Run VisualStudioSetup.exe
+- Workload = [x] Desktop development with C++
+- Individual components = [x] Git For Windows
-
-# Windows
-- Install Visual Studio Community 2022
-- Add Desktop development with C++ workload
-- Launch x64 Native tools Command Prompt for VS2022
+#### x64 Native Tools for VS
```
-cd %USERPROFILE%
-mkdir workdir
-cd workdir
-mkdir bella_engine_sdk
-cd bella_engine_sdk
-curl -LO https://downloads.bellarender.com/bella_engine_sdk-24.6.0.zip
-tar -xf bella_engine_sdk-24.6.0.zip
-cd ..
-git clone https://github.com/raysan5/raylib.git
+mkdir workdir && cd workdir
+mkdir raylib raygui poomer-raylib-bella_onimage
+
+# Install Bella SDK
+curl -O https://downloads.bellarender.com/bella_engine_sdk-25.3.0-win32.zip
+tar -xf bella_engine_sdk-25.3.0-win32.zip
+
+# Build raylib
cd raylib
-mkdir build
-cd build
-cmake ..
-msbuild raylib.sln /p:Configuration=Release
-cd ../..
+git clone https://github.com/raysan5/raylib.git .
+cmake -B ./build
+#cd build
+#msbuild raylib.sln /p:Configuration=Release
+cmake --build ./build --config Release -j%NUMBER_OF_PROCESSORS%
+
+#Install raygui
+cd ..
git clone https://github.com/raysan5/raygui.git
+
+# Build poomer-raylib-bella_onimage
git clone https://git.indoodle.com/oomer/oom.git
-git clone https://git.indoodle.com/oomer/poomer-raylib-bella_onimage.git
cd poomer-raylib-bella_onimage
-msbuild poomer-raylib-bella_onimage.vcxproj /p:Configuration=release /p:Platform=x64 /p:PlatformToolset=v143
+git clone https://git.indoodle.com/oomer/poomer-raylib-bella_onimage.git .
+msbuild poomer-raylib-bella_onimage.vcxproj /p:Configuration=release
x64\release\poomer-raylib-bella_onimage.exe -h
-```
+```
\ No newline at end of file
diff --git a/poomer-raylib-bella_onimage.vcxproj b/poomer-raylib-bella_onimage.vcxproj
index 0e6c8e0..f5db7d6 100644
--- a/poomer-raylib-bella_onimage.vcxproj
+++ b/poomer-raylib-bella_onimage.vcxproj
@@ -19,13 +19,13 @@
Application
false
- v141
+ $(DefaultPlatformToolset)
Unicode
Application
false
- v141
+ $(DefaultPlatformToolset)
Unicode
@@ -54,7 +54,7 @@
Console
true
lib;..\raylib\build\raylib\Release
- bella_engine_sdk.lib;raylib.lib;Shlwapi.lib;vulkan-1.lib;winmm.lib;%(AdditionalDependencies)
+ dl_usd_ms.lib;bella_engine_sdk.lib;raylib.lib;Shlwapi.lib;vulkan-1.lib;winmm.lib;%(AdditionalDependencies)
vulkan-1.dll
@@ -95,6 +95,8 @@
echo Post-build event started &
copy "$(ProjectDir)..\bella_engine_sdk\lib\bella_engine_sdk.dll" "$(TargetDir)" &
echo bella_engine_sdk.dll copied &
+ copy "$(ProjectDir)..\bella_engine_sdk\lib\dl_usd_ms.dll" "$(TargetDir)" &
+ echo dl_usd_ms.dll copied &
copy "$(ProjectDir)..\bella_engine_sdk\lib\dl_core.dll" "$(TargetDir)" &
echo dl_core.dll copied &
copy "$(ProjectDir)..\bella_engine_sdk\lib\dl_oidn_core.dll" "$(TargetDir)" &