From 0837e7451a84f95c29dbdb9bd6b8b931fee1635d Mon Sep 17 00:00:00 2001 From: Julian Sikorski Date: Sun, 13 Oct 2019 13:50:38 +0200 Subject: 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 --- .../bgfx/examples/common/nanovg/nanovg_bgfx.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to '3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.cpp') diff --git a/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.cpp b/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.cpp index 77699841c01..81f6b0948e6 100644 --- a/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.cpp +++ b/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.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 */ @@ -48,7 +48,7 @@ static const bgfx::EmbeddedShader s_embeddedShaders[] = namespace { - static bgfx::VertexDecl s_nvgDecl; + static bgfx::VertexLayout s_nvgLayout; enum GLNVGshaderType { @@ -271,7 +271,7 @@ namespace gl->u_scissorExtScale = bgfx::createUniform("u_scissorExtScale", bgfx::UniformType::Vec4); gl->u_extentRadius = bgfx::createUniform("u_extentRadius", bgfx::UniformType::Vec4); gl->u_params = bgfx::createUniform("u_params", bgfx::UniformType::Vec4); - gl->s_tex = bgfx::createUniform("s_tex", bgfx::UniformType::Int1); + gl->s_tex = bgfx::createUniform("s_tex", bgfx::UniformType::Sampler); if (bgfx::getRendererType() == bgfx::RendererType::Direct3D9) { @@ -282,7 +282,7 @@ namespace gl->u_halfTexel.idx = bgfx::kInvalidHandle; } - s_nvgDecl + s_nvgLayout .begin() .add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float) .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) @@ -370,7 +370,11 @@ namespace uint32_t pitch = tex->width * bytesPerPixel; const bgfx::Memory* mem = bgfx::alloc(w * h * bytesPerPixel); - bx::gather(mem->data, data + y * pitch + x * bytesPerPixel, w * bytesPerPixel, h, pitch); + bx::gather(mem->data, // dst + data + y * pitch + x * bytesPerPixel, // src + pitch, // srcStride + w * bytesPerPixel, // stride + h); // num bgfx::updateTexture2D( tex->id @@ -554,11 +558,11 @@ namespace gl->th = handle; } - static void nvgRenderViewport(void* _userPtr, int width, int height, float devicePixelRatio) + static void nvgRenderViewport(void* _userPtr, float width, float height, float devicePixelRatio) { struct GLNVGcontext* gl = (struct GLNVGcontext*)_userPtr; - gl->view[0] = (float)width; - gl->view[1] = (float)height; + gl->view[0] = width; + gl->view[1] = height; bgfx::setViewRect(gl->viewId, 0, 0, width * devicePixelRatio, height * devicePixelRatio); } @@ -758,7 +762,7 @@ namespace if (gl->ncalls > 0) { - bgfx::allocTransientVertexBuffer(&gl->tvb, gl->nverts, s_nvgDecl); + bgfx::allocTransientVertexBuffer(&gl->tvb, gl->nverts, s_nvgLayout); int allocated = gl->tvb.size/gl->tvb.stride; -- cgit v1.2.3-70-g09d2