diff --git a/.github/workflows/gen-pr.yml b/.github/workflows/gen-pr.yml index 468d738..b360432 100644 --- a/.github/workflows/gen-pr.yml +++ b/.github/workflows/gen-pr.yml @@ -25,9 +25,40 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Set reusable strings + # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file. + id: strings + shell: bash + run: | + echo "build-output-dir=$GITHUB_WORKSPACE/build" >> "$GITHUB_OUTPUT" + echo "install-dir=$GITHUB_WORKSPACE/install/ubuntu-latest-clang-Debug" >> "$GITHUB_OUTPUT" + + - name: Install SDL windowing deps (Linux) + run: | + sudo apt update + sudo apt install -y \ + build-essential cmake ninja-build pkg-config gcc clang git python3 \ + libasound2-dev libjack-jackd2-dev libpulse-dev \ + xorg-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxtst-dev \ + libxkbcommon-dev wayland-protocols libwayland-dev \ + libdrm-dev mesa-utils mesa-common-dev + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: > + cmake -B ${{ steps.strings.outputs.build-output-dir }} + -DCMAKE_CXX_COMPILER=clang++ + -DCMAKE_C_COMPILER=clang + -S $GITHUB_WORKSPACE + -G "Ninja Multi-Config" + + - name: Build + run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config Debug + - name: Generate PR from issue using OpenRouter uses: WillBooster/gen-pr@v4.1.4 with: issue-number: ${{ inputs.issue-number }} - aider-extra-args: "--model openrouter/openrouter/polaris-alpha" + aider-extra-args: "--model openrouter/kwaipilot/kat-coder-pro:free" verbose: true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/gen-pr.config.yml b/gen-pr.config.yml index 7e0b7dc..185635f 100644 --- a/gen-pr.config.yml +++ b/gen-pr.config.yml @@ -1,12 +1,12 @@ # gen-pr.config.yml -planning-model: openrouter/openrouter/polaris-alpha +planning-model: openrouter/kwaipilot/kat-coder-pro:free reasoning-effort: high -repomix-extra-args: "--compress --remove-empty-lines --include '**/*.cpp' --include '**/*.ixx'" +repomix-extra-args: "--compress --remove-empty-lines --include '**/*.cpp' --include '**/*.ixx' --include '**/CMakeLists.txt'" coding-tool: aider -aider-extra-args: "--model openrouter/openrouter/polaris-alpha" +aider-extra-args: "--model openrouter/kwaipilot/kat-coder-pro:free" verbose: true # Run build tests after code generation -test-command: "cmake -S . -B build" +test-command: "cmake --build ./build --config Debug" diff --git a/sdl_wrapper/sdl_wrapper.buffer.ixx b/sdl_wrapper/sdl_wrapper.buffer.ixx index a813db7..163d9d6 100644 --- a/sdl_wrapper/sdl_wrapper.buffer.ixx +++ b/sdl_wrapper/sdl_wrapper.buffer.ixx @@ -16,7 +16,7 @@ export namespace sopho SDL_GPUTransferBuffer* m_transfer_buffer{}; uint32_t m_transfer_buffer_size{}; - BufferWrapper(std::shared_ptr p_gpu, SDL_GPUBuffer* p_buffer) : + BufferWrapper(std::shared_ptr<::sopho::GpuWrapper> p_gpu, SDL_GPUBuffer* p_buffer) : m_gpu(p_gpu), m_vertex_buffer(p_buffer) { } diff --git a/sdl_wrapper/sdl_wrapper.gpu.cpp b/sdl_wrapper/sdl_wrapper.gpu.cpp index 73eab63..b759408 100644 --- a/sdl_wrapper/sdl_wrapper.gpu.cpp +++ b/sdl_wrapper/sdl_wrapper.gpu.cpp @@ -2,10 +2,18 @@ // Created by wsqsy on 11/14/2025. // module; +#include module sdl_wrapper; import :gpu; import :pipeline; namespace sopho { + BufferWrapper GpuWrapper::create_buffer(SDL_GPUBufferUsageFlags flag, uint32_t size) + { + SDL_GPUBufferCreateInfo create_info{flag, size}; + auto buffer = SDL_CreateGPUBuffer(m_device, &create_info); + BufferWrapper result(shared_from_this(), buffer); + return result; + } PipelineWrapper GpuWrapper::create_pipeline() { return PipelineWrapper{shared_from_this()}; } -} +} // namespace sopho diff --git a/sdl_wrapper/sdl_wrapper.gpu.ixx b/sdl_wrapper/sdl_wrapper.gpu.ixx index 45e7186..352ce9d 100644 --- a/sdl_wrapper/sdl_wrapper.gpu.ixx +++ b/sdl_wrapper/sdl_wrapper.gpu.ixx @@ -9,9 +9,9 @@ module; export module sdl_wrapper:gpu; import :buffer; import :pipeline; -namespace sopho +export namespace sopho { - export class GpuWrapper : public std::enable_shared_from_this + class GpuWrapper : public std::enable_shared_from_this { SDL_GPUDevice* m_device{}; @@ -37,13 +37,7 @@ namespace sopho auto data() { return m_device; } - auto create_buffer(SDL_GPUBufferUsageFlags flag, uint32_t size) - { - SDL_GPUBufferCreateInfo create_info{flag, size}; - auto buffer = SDL_CreateGPUBuffer(m_device, &create_info); - BufferWrapper result(shared_from_this(), buffer); - return result; - } + BufferWrapper create_buffer(SDL_GPUBufferUsageFlags flag, uint32_t size); PipelineWrapper create_pipeline();