summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/03-raymarch/raymarch.cpp
diff options
context:
space:
mode:
author Julian Sikorski <belegdol+github@gmail.com>2019-10-13 13:50:38 +0200
committer R. Belmont <rb6502@users.noreply.github.com>2019-10-13 07:50:38 -0400
commit0837e7451a84f95c29dbdb9bd6b8b931fee1635d (patch)
tree626bcbd250a7fbebdf5958a288d2f438d4f9fb5a /3rdparty/bgfx/examples/03-raymarch/raymarch.cpp
parentc913ccb59d713ce0b91135520719ac5385e54358 (diff)
WIP: sync bgfx, bx and bimg with latest upstream (#5723)
* Sync with bgfx upstream revision b91d0b6 * Sync with bx upstream revision d60912b * Sync with bimg upstream revision bd81f60 * Add astc-codec decoder * Rename VertexDecl to VertexLayout * Rename UniformType enum Int1 to Sampler. * Add NVN stub * Fix unused-const-variable error on macOS * Drop redundant explicit language parameters buildoptions_cpp are only applied to c++ files and buildoptions_objcpp are only applied to objective c++ files. As such, hardcoding -x offers no benefit while preventing overrides (such as one needed by 3rdparty/bgfx/src/renderer_vk.cpp on macOS) from working. * Re-introduce -x c++ in places where C code is compiled as C++ to prevent clang from throwing a warning * Build bgfx as Objective-C++ on macOS It is needed due to included headers * Enable Direct3D12 and Vulkan bgfx rendering backends * Enable building of spirv shaders * Properly escape /c in cmd call * Comment out dx12 bgfx renderer * Honor VERBOSE setting during shaders build * Only invert hlsl shader XYZ_TO_sRGB matrix for opengl * Add spirv shaders * OpenGL ES needs transposed matrix too * Metal needs transposed matrix as well
Diffstat (limited to '3rdparty/bgfx/examples/03-raymarch/raymarch.cpp')
-rw-r--r--3rdparty/bgfx/examples/03-raymarch/raymarch.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/3rdparty/bgfx/examples/03-raymarch/raymarch.cpp b/3rdparty/bgfx/examples/03-raymarch/raymarch.cpp
index a07e018485e..cbd39a1c495 100644
--- a/3rdparty/bgfx/examples/03-raymarch/raymarch.cpp
+++ b/3rdparty/bgfx/examples/03-raymarch/raymarch.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
+ * Copyright 2011-2019 Branimir Karadzic. All rights reserved.
* License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
*/
@@ -21,7 +21,7 @@ struct PosColorTexCoord0Vertex
static void init()
{
- ms_decl
+ ms_layout
.begin()
.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float)
.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true)
@@ -29,17 +29,17 @@ struct PosColorTexCoord0Vertex
.end();
}
- static bgfx::VertexDecl ms_decl;
+ static bgfx::VertexLayout ms_layout;
};
-bgfx::VertexDecl PosColorTexCoord0Vertex::ms_decl;
+bgfx::VertexLayout PosColorTexCoord0Vertex::ms_layout;
void renderScreenSpaceQuad(uint8_t _view, bgfx::ProgramHandle _program, float _x, float _y, float _width, float _height)
{
bgfx::TransientVertexBuffer tvb;
bgfx::TransientIndexBuffer tib;
- if (bgfx::allocTransientBuffers(&tvb, PosColorTexCoord0Vertex::ms_decl, 4, &tib, 6) )
+ if (bgfx::allocTransientBuffers(&tvb, PosColorTexCoord0Vertex::ms_layout, 4, &tib, 6) )
{
PosColorTexCoord0Vertex* vertex = (PosColorTexCoord0Vertex*)tvb.data;
@@ -102,8 +102,8 @@ void renderScreenSpaceQuad(uint8_t _view, bgfx::ProgramHandle _program, float _x
class ExampleRaymarch : public entry::AppI
{
public:
- ExampleRaymarch(const char* _name, const char* _description)
- : entry::AppI(_name, _description)
+ ExampleRaymarch(const char* _name, const char* _description, const char* _url)
+ : entry::AppI(_name, _description, _url)
{
}
@@ -224,11 +224,9 @@ public:
float mtxInv[16];
bx::mtxInverse(mtxInv, mtx);
- float lightDirModel[4] = { -0.4f, -0.5f, -1.0f, 0.0f };
- float lightDirModelN[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
- bx::vec3Norm(lightDirModelN, lightDirModel);
float lightDirTime[4];
- bx::vec4MulMtx(lightDirTime, lightDirModelN, mtxInv);
+ const bx::Vec3 lightDirModelN = bx::normalize(bx::Vec3{-0.4f, -0.5f, -1.0f});
+ bx::store(lightDirTime, bx::mul(lightDirModelN, mtxInv) );
lightDirTime[3] = time;
bgfx::setUniform(u_lightDirTime, lightDirTime);
@@ -266,4 +264,9 @@ public:
} // namespace
-ENTRY_IMPLEMENT_MAIN(ExampleRaymarch, "03-raymarch", "Updating shader uniforms.");
+ENTRY_IMPLEMENT_MAIN(
+ ExampleRaymarch
+ , "03-raymarch"
+ , "Updating shader uniforms."
+ , "https://bkaradzic.github.io/bgfx/examples.html#raymarch"
+ );