mame/3rdparty/bx/tests/easing_test.cpp
Julian Sikorski 0837e7451a 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
2019-10-13 07:50:38 -04:00

60 lines
1.2 KiB
C++

/*
* Copyright 2010-2019 Branimir Karadzic. All rights reserved.
* License: https://github.com/bkaradzic/bx#license-bsd-2-clause
*/
#include "test.h"
#include <bx/easing.h>
#include <bx/file.h>
TEST_CASE("easing", "")
{
bx::WriterI* writer = bx::getNullOut();
bx::Error err;
for (uint32_t ee = 0; ee < bx::Easing::Count; ++ee)
{
bx::write(writer, &err, "\n\n%d\n", ee);
const bx::EaseFn easing = bx::getEaseFunc(bx::Easing::Enum(ee) );
const int32_t nx = 64;
const int32_t ny = 10;
bx::write(writer, &err, "\t/// ^\n");
for (int32_t yy = ny+4; yy >= -5; --yy)
{
const float ys = float(yy )/float(ny);
const float ye = float(yy+1.0)/float(ny);
bx::write(writer, &err, "\t/// %c", yy != 0 ? '|' : '+');
for (int32_t xx = 0; xx < nx; ++xx)
{
int32_t jj = 0;
for (; jj < 10; ++jj)
{
const float tt = float(xx*10+jj)/10.0f/float(nx);
const float vv = easing(tt);
if (vv >= ys
&& vv < ye)
{
bx::write(writer, "*");
break;
}
}
if (jj == 10)
{
bx::write(writer, &err, "%c", yy != 0 ? ' ' : '-');
}
}
bx::write(writer, &err, "%s\n", yy != 0 ? "" : ">");
}
}
}