Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
d2cbd00
Temporary fix for crash [DO NOT SHIP][TMP]
Jun 21, 2016
9c712a4
First pass new graphics API for vorb. Sans camera.
Jun 26, 2016
2cecb24
Load graphics and fix random typo
Jun 26, 2016
d3e91af
Fixed post process load bug
Jun 26, 2016
43e17c0
Fixed initialization bug in Bloom.
Jun 26, 2016
d0a4642
Added GL error checking to vorb
Jun 26, 2016
53a9952
Fixed another bloom init issue.
Jun 26, 2016
e5c3bd4
GBuffer rendering, optimized bloom. Working first pass.
Jun 26, 2016
261e176
Added Camera implementation
Jun 26, 2016
4974695
Better camera orientation control
Jun 26, 2016
317c5e9
Static function pointers for spritebatch
Jun 27, 2016
8025d5c
Not plural.
Jun 27, 2016
2e66324
This actually works...
czaloj Jun 27, 2016
4193988
Added more voxel module code
Jul 3, 2016
45416a5
Merge branch 'Graphics' of https://github.com/RegrowthStudios/Vorb in…
Jul 3, 2016
300bf24
Updated some voxel stuff. Still not quite done.
Jul 4, 2016
26c4386
Fixed some compile errors with BOTW
Jul 4, 2016
b1a2c08
Allow passing in version for shadermanager. Full gbuffer.
Jul 5, 2016
c82de54
Fixed version bug
Jul 5, 2016
54c6aaf
Fixed bloom to work with gbuffer properly
Jul 5, 2016
ced8e13
Allow runtime passthrough texture change
Jul 5, 2016
caa2459
Better postprocessing API and various fixes.
Jul 7, 2016
1006cd4
Fixed innacurate comment
Jul 16, 2016
729324c
Added first pass SSAO
Jul 16, 2016
13f5351
Added first pass input mapper
Jul 16, 2016
a4c4dec
Added test code for determining bug
Jul 24, 2016
7bf0ca3
Changed some camera weirdness
Jul 24, 2016
e74088c
Improved mouse input, fixed camera issues
Jul 24, 2016
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
91 changes: 53 additions & 38 deletions UnitTests/VorbGraphics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,19 @@ struct ImageTestFormats {

class ImageViewer : public vui::IGameScreen {
public:
virtual i32 getNextScreen() const {
virtual i32 getNextScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}
virtual i32 getPreviousScreen() const {
virtual i32 getPreviousScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}

virtual void build() {
virtual void build() override {
}
virtual void destroy(const vui::GameTime& gameTime) {
virtual void destroy(const vui::GameTime& gameTime) override {
}

virtual void onEntry(const vui::GameTime& gameTime) {
virtual void onEntry(const vui::GameTime& gameTime) override {
m_imageFormat = m_testFormats[0];
m_hooks.addAutoHook(vui::InputDispatcher::window.onFile, [&] (Sender, const vui::WindowFileEvent& e) {
auto bmp = vg::ImageIO().load(e.file, m_imageFormat.format);
Expand Down Expand Up @@ -95,13 +95,16 @@ class ImageViewer : public vui::IGameScreen {
vg::SamplerState::LINEAR_WRAP.set(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, 0);
}
virtual void onExit(const vui::GameTime& gameTime) {
virtual void onExit(const vui::GameTime& gameTime) override {
m_sb.dispose();
if (m_bmp.data) vg::ImageIO::free(m_bmp);
if (m_tex.id != 0) glDeleteTextures(1, &m_tex.id);
}

virtual void update(const vui::GameTime& gameTime) {
virtual void registerRendering(vg::Renderer& renderer) override {
}

virtual void update(const vui::GameTime& gameTime) override {
if (m_bmp.data) {
glBindTexture(GL_TEXTURE_2D, m_tex.id);
m_tex.width = m_bmp.width;
Expand All @@ -117,7 +120,7 @@ class ImageViewer : public vui::IGameScreen {
m_bmp = {};
}
}
virtual void draw(const vui::GameTime& gameTime) {
virtual void onRenderFrame(const vui::GameTime& gameTime) override {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


Expand Down Expand Up @@ -183,26 +186,29 @@ class FontViewer : public vui::IGameScreen {
return SCREEN_INDEX_NO_SCREEN;
}

virtual void build() {
virtual void build() override {
// Empty
}
virtual void destroy(const vui::GameTime& gameTime) {
virtual void destroy(const vui::GameTime& gameTime) override {
// Empty
}

virtual void onEntry(const vui::GameTime& gameTime) {
virtual void onEntry(const vui::GameTime& gameTime) override {
batch.init();
font.init("Data/chintzy.ttf", 32);
}
virtual void onExit(const vui::GameTime& gameTime) {
virtual void onExit(const vui::GameTime& gameTime) override {
batch.dispose();
font.dispose();
}

virtual void update(const vui::GameTime& gameTime) {
virtual void registerRendering(vg::Renderer& renderer) override {
}

virtual void update(const vui::GameTime& gameTime) override {
// Empty
}
virtual void draw(const vui::GameTime& gameTime) {
virtual void onRenderFrame(const vui::GameTime& gameTime) override {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

batch.begin();
Expand All @@ -217,14 +223,14 @@ class FontViewer : public vui::IGameScreen {

class TorusViewer : public vui::IGameScreen {
public:
virtual i32 getNextScreen() const {
virtual i32 getNextScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}
virtual i32 getPreviousScreen() const {
virtual i32 getPreviousScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}

virtual void build() {
virtual void build() override {
pitchInput = 0;
yawInput = 0;
pool.addAutoHook(vui::InputDispatcher::key.onKeyDown, [&] (Sender, const vui::KeyEvent& e) {
Expand All @@ -245,11 +251,11 @@ class TorusViewer : public vui::IGameScreen {
}
});
}
virtual void destroy(const vui::GameTime& gameTime) {
virtual void destroy(const vui::GameTime& gameTime) override {
pool.dispose();
}

virtual void onEntry(const vui::GameTime& gameTime) {
virtual void onEntry(const vui::GameTime& gameTime) override {
glGenBuffers(1, &verts);
glGenBuffers(1, &inds);
glGenVertexArrays(1, &vdecl);
Expand Down Expand Up @@ -307,21 +313,24 @@ void main() {

spriteBatch.init();
}
virtual void onExit(const vui::GameTime& gameTime) {
virtual void onExit(const vui::GameTime& gameTime) override {
glDeleteBuffers(1, &verts);
glDeleteBuffers(1, &inds);
glDeleteVertexArrays(1, &vdecl);
glDeleteTextures(1, &texture);
program.dispose();
}

virtual void update(const vui::GameTime& gameTime) {
virtual void registerRendering(vg::Renderer& renderer) override {
}

virtual void update(const vui::GameTime& gameTime) override {
yaw += (f32)(gameTime.elapsed * yawInput);
pitch += (f32)(gameTime.elapsed * pitchInput);
yaw = fmod(yaw + 6.28f, 6.28f);
pitch = fmod(pitch + 6.28f, 6.28f);
}
virtual void draw(const vui::GameTime& gameTime) {
virtual void onRenderFrame(const vui::GameTime& gameTime) override {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

f32v3 eye;
Expand Down Expand Up @@ -376,21 +385,21 @@ void main() {

class SpriteBatchTester : public vui::IGameScreen {
public:
virtual i32 getNextScreen() const {
virtual i32 getNextScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}
virtual i32 getPreviousScreen() const {
virtual i32 getPreviousScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}

virtual void build() {
virtual void build() override {
// Empty
}
virtual void destroy(const vui::GameTime& gameTime) {
virtual void destroy(const vui::GameTime& gameTime) override {
// Empty
}

virtual void onEntry(const vui::GameTime& gameTime) {
virtual void onEntry(const vui::GameTime& gameTime) override {
batch.init();

// Init sprites
Expand All @@ -414,14 +423,17 @@ class SpriteBatchTester : public vui::IGameScreen {
vg::SamplerState::POINT_WRAP.set(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, 0);
}
virtual void onExit(const vui::GameTime& gameTime) {
virtual void onExit(const vui::GameTime& gameTime) override {
batch.dispose();
}

virtual void update(const vui::GameTime& gameTime) {
virtual void registerRendering(vg::Renderer& renderer) override {
}

virtual void update(const vui::GameTime& gameTime) override {
angle += 0.1f;
}
virtual void draw(const vui::GameTime& gameTime) {
virtual void onRenderFrame(const vui::GameTime& gameTime) override {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

timer.start();
Expand Down Expand Up @@ -521,19 +533,19 @@ class AnimViewer : public vui::IGameScreen {
mWorld[bone.index] = mWorld[bone.index] * mRestInv[bone.index];
}

virtual i32 getNextScreen() const {
virtual i32 getNextScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}
virtual i32 getPreviousScreen() const {
virtual i32 getPreviousScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}

virtual void build() {
virtual void build() override {
}
virtual void destroy(const vui::GameTime& gameTime) {
virtual void destroy(const vui::GameTime& gameTime) override {
}

virtual void onEntry(const vui::GameTime& gameTime) {
virtual void onEntry(const vui::GameTime& gameTime) override {
std::unordered_map<ui8, VGAttribute> attrmap;
vg::VertexAttributeIndexed vai;
vai.type = vg::VertexAttributeUsage::Position;
Expand Down Expand Up @@ -665,17 +677,20 @@ void main() {
glClearColor(1, 1, 1, 1);
glClearDepth(1.0);
}
virtual void onExit(const vui::GameTime& gameTime) {
virtual void onExit(const vui::GameTime& gameTime) override {
delete[] skeleton.bones;
delete[] skeleton.frames;
delete[] skeleton.childrenArray;
delete[] mWorld;
delete[] mRestInv;
}

virtual void update(const vui::GameTime& gameTime) {
virtual void registerRendering(vg::Renderer& renderer) override {
}

virtual void update(const vui::GameTime& gameTime) override {
}
virtual void draw(const vui::GameTime& gameTime) {
virtual void onRenderFrame(const vui::GameTime& gameTime) override {
vg::DepthState::FULL.set();
vg::RasterizerState::CULL_NONE.set();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Expand Down
37 changes: 21 additions & 16 deletions UnitTests/VorbUI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,39 +30,41 @@ struct Vertex {

class TestScreen : public vui::IGameScreen {
public:
virtual i32 getNextScreen() const {
virtual i32 getNextScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}
virtual i32 getPreviousScreen() const {
virtual i32 getPreviousScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}
virtual void build() {
virtual void build() override {
}
virtual void destroy(const vui::GameTime& gameTime) {
virtual void destroy(const vui::GameTime& gameTime) override {
}
virtual void onEntry(const vui::GameTime& gameTime) {
virtual void onEntry(const vui::GameTime& gameTime) override {
}
virtual void onExit(const vui::GameTime& gameTime) {
virtual void onExit(const vui::GameTime& gameTime) override {
}
virtual void update(const vui::GameTime& gameTime) {
virtual void registerRendering(vg::Renderer& renderer) override {
}
virtual void draw(const vui::GameTime& gameTime) {
virtual void onRenderFrame(const vui::GameTime& gameTime) override {
}
virtual void update(const vui::GameTime& gameTime) override {
}
};

class WidgetTestScreen : public vui::IGameScreen {
public:
virtual i32 getNextScreen() const {
virtual i32 getNextScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}
virtual i32 getPreviousScreen() const {
virtual i32 getPreviousScreen() const override {
return SCREEN_INDEX_NO_SCREEN;
}
virtual void build() {
virtual void build() override {
}
virtual void destroy(const vui::GameTime& gameTime) {
virtual void destroy(const vui::GameTime& gameTime) override {
}
virtual void onEntry(const vui::GameTime& gameTime) {
virtual void onEntry(const vui::GameTime& gameTime) override {
font.init("Data/chintzy.ttf", 32);
form.init("main", this, f32v4(0.0f, 0.0f, (f32)m_viewportDims.x, (f32)m_viewportDims.y));

Expand Down Expand Up @@ -90,14 +92,17 @@ class WidgetTestScreen : public vui::IGameScreen {
// env.init(&form, &m_game->getWindow());
// env.loadForm("data/scripts/Form1.lua");
}
virtual void onExit(const vui::GameTime& gameTime) {
virtual void onExit(const vui::GameTime& gameTime) override {
form.dispose();
// font.dispose();
}
virtual void update(const vui::GameTime& gameTime) {
virtual void registerRendering(vg::Renderer& renderer) override {
// Empty
}
virtual void update(const vui::GameTime& gameTime) override {
// form.update();
}
virtual void draw(const vui::GameTime& gameTime) {
virtual void onRenderFrame(const vui::GameTime& gameTime) override {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
form.draw();
}
Expand Down
14 changes: 14 additions & 0 deletions Vorb.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ $(SolutionDir)DepsBuildCopy.bat</Command>
<ClCompile Include="src/graphics/GLRenderTarget.cpp" />
<ClCompile Include="src/graphics/GpuMemory.cpp" />
<ClCompile Include="src/graphics/GraphicsDevice.cpp" />
<ClCompile Include="src\graphics\Camera.cpp" />
<ClCompile Include="src\graphics\Frustum.cpp" />
<ClCompile Include="src/graphics/RasterizerState.cpp" />
<ClCompile Include="src/graphics/SamplerState.cpp" />
Expand All @@ -314,6 +315,9 @@ $(SolutionDir)DepsBuildCopy.bat</Command>
<ClCompile Include="src/sound/SoundInstance.cpp" />
<ClCompile Include="src/Timing.cpp" />
<ClCompile Include="src/ui/LuaDevConsole.cpp" />
<ClCompile Include="src\graphics\PostProcess.cpp" />
<ClCompile Include="src\graphics\Renderer.cpp" />
<ClCompile Include="src\graphics\Scene.cpp" />
<ClCompile Include="src\graphics\ShaderInterface.cpp" />
<ClCompile Include="src\graphics\ShaderManager.cpp" />
<ClCompile Include="src\graphics\ShaderParser.cpp" />
Expand Down Expand Up @@ -352,6 +356,7 @@ $(SolutionDir)DepsBuildCopy.bat</Command>
<ClCompile Include="src\ui\Button.cpp" />
<ClCompile Include="src\ui\Drawables.cpp" />
<ClCompile Include="src\ui\GameWindowScriptFuncs.cpp" />
<ClCompile Include="src\ui\InputMapper.cpp" />
<ClCompile Include="src\ui\IWidgetContainer.cpp" />
<ClCompile Include="src\ui\Label.cpp" />
<ClCompile Include="src\ui\LabelScriptFuncs.cpp" />
Expand Down Expand Up @@ -416,6 +421,7 @@ $(SolutionDir)DepsBuildCopy.bat</Command>
<ClInclude Include="include/io/IOManager.h" />
<ClInclude Include="include\Asset.h" />
<ClInclude Include="include\AssetLoader.h" />
<ClInclude Include="include\graphics\Camera.h" />
<ClInclude Include="include\graphics\Frustum.h" />
<ClInclude Include="include/IThreadPoolTask.h" />
<ClInclude Include="include/io/Keg.h" />
Expand All @@ -430,6 +436,9 @@ $(SolutionDir)DepsBuildCopy.bat</Command>
<ClInclude Include="include/ui/ScreenList.h" />
<ClInclude Include="include\Graphics.h" />
<ClInclude Include="include\graphics\AnimationData.h" />
<ClInclude Include="include\graphics\PostProcess.h" />
<ClInclude Include="include\graphics\Scene.h" />
<ClInclude Include="include\graphics\Renderer.h" />
<ClInclude Include="include\graphics\ShaderInterface.h" />
<ClInclude Include="include\graphics\ShaderManager.h" />
<ClInclude Include="include\graphics\ShaderParser.h" />
Expand Down Expand Up @@ -498,6 +507,7 @@ $(SolutionDir)DepsBuildCopy.bat</Command>
<ClInclude Include="include\ui\Button.h" />
<ClInclude Include="include\ui\Drawables.h" />
<ClInclude Include="include\ui\GameWindowScriptFuncs.h" />
<ClInclude Include="include\ui\InputMapper.h" />
<ClInclude Include="include\ui\IWidgetContainer.h" />
<ClInclude Include="include\ui\Label.h" />
<ClInclude Include="include\ui\LabelScriptFuncs.h" />
Expand All @@ -517,7 +527,10 @@ $(SolutionDir)DepsBuildCopy.bat</Command>
<ClInclude Include="include\VorbAssert.hpp" />
<ClInclude Include="include\VorbLibs.h" />
<ClInclude Include="include\VorbMemory.h" />
<ClInclude Include="include\voxel\Chunk.h" />
<ClInclude Include="include\voxel\BlockPack.h" />
<ClInclude Include="include\voxel\IntervalTree.h" />
<ClInclude Include="include\voxel\SmartVoxelContainer.hpp" />
<ClInclude Include="include\voxel\VoxelTextureStitcher.h" />
<ClInclude Include="src/sound/SoundImpl.hpp" />
<ClInclude Include="src\io\YAMLImpl.h" />
Expand All @@ -537,6 +550,7 @@ $(SolutionDir)DepsBuildCopy.bat</Command>
<None Include="include/typesArray.inl" />
<None Include="include/typesColor.inl" />
<None Include="include\AssetLoader.inl" />
<None Include="include\graphics\ShaderCommon.inl" />
<None Include="include\math\MatrixMath.hpp" />
<None Include="include\Matrix.inl" />
<None Include="include\Quaternion.inl" />
Expand Down
Loading