瀏覽代碼

square

feature/replace-renderer
Martin Dørum 3 年之前
父節點
當前提交
df17ae71a0
共有 4 個檔案被更改,包括 6 行新增1 行删除
  1. 1
    0
      libcygnet/include/cygnet/Renderer.h
  2. 2
    0
      libcygnet/include/cygnet/Window.h
  3. 1
    1
      libcygnet/src/Renderer.cc
  4. 2
    0
      src/cygnet-test.cc

+ 1
- 0
libcygnet/include/cygnet/Renderer.h 查看文件



struct RenderCamera { struct RenderCamera {
SwanCommon::Vec2 pos; SwanCommon::Vec2 pos;
SwanCommon::Vec2i size;
float zoom; float zoom;
}; };



+ 2
- 0
libcygnet/include/cygnet/Window.h 查看文件

#pragma once #pragma once


#include <swan-common/Vector2.h>
#include <memory> #include <memory>


namespace Cygnet { namespace Cygnet {
void clear(); void clear();
void flip(); void flip();
void onResize(int w, int h); void onResize(int w, int h);
SwanCommon::Vec2i size() { return { w_, h_ }; }


private: private:
std::unique_ptr<WindowState> state_; std::unique_ptr<WindowState> state_;

+ 1
- 1
libcygnet/src/Renderer.cc 查看文件

void Renderer::draw(const RenderCamera &cam) { void Renderer::draw(const RenderCamera &cam) {
Mat3gf camMat; Mat3gf camMat;
camMat.translate(cam.pos.scale(-1, 1) * cam.zoom); // TODO: Change something to make this -cam.pos camMat.translate(cam.pos.scale(-1, 1) * cam.zoom); // TODO: Change something to make this -cam.pos
camMat.scale({ cam.zoom, cam.zoom });
camMat.scale({ cam.zoom * ((float)cam.size.y / (float)cam.size.x), cam.zoom });
auto &chunkProg = state_->chunkProg; auto &chunkProg = state_->chunkProg;


chunkProg.enable(); chunkProg.enable();

+ 2
- 0
src/cygnet-test.cc 查看文件



Cygnet::RenderCamera cam = { Cygnet::RenderCamera cam = {
.pos = { 0, 0 }, .pos = { 0, 0 },
.size = win.size(),
.zoom = 1, .zoom = 1,
}; };


switch (evt.window.event) { switch (evt.window.event) {
case SDL_WINDOWEVENT_SIZE_CHANGED: case SDL_WINDOWEVENT_SIZE_CHANGED:
win.onResize(evt.window.data1, evt.window.data2); win.onResize(evt.window.data1, evt.window.data2);
cam.size = win.size();
break; break;
} }
break; break;

Loading…
取消
儲存