From a8f259d1a19d4fd66b422b83d7047fa94ec6500f Mon Sep 17 00:00:00 2001 From: Aaron Franke Date: Fri, 6 Dec 2024 14:07:47 -0800 Subject: [PATCH] Format files to remove trailing spaces --- README.md | 108 +- bindings/bf/bgfx.bf | 1182 +++--- bindings/cs/bgfx.cs | 1182 +++--- bindings/d/package.d | 452 +-- bindings/zig/bgfx.zig | 2 - docs/examples.rst | 2 +- examples/06-bump/vs_bump.sc | 2 +- examples/06-bump/vs_bump_instanced.sc | 4 +- examples/12-lod/fs_tree.sc | 1 - examples/13-stencil/vs_stencil_color.sc | 2 +- .../13-stencil/vs_stencil_color_lighting.sc | 2 +- .../13-stencil/vs_stencil_color_texture.sc | 2 +- examples/13-stencil/vs_stencil_texture.sc | 2 +- .../13-stencil/vs_stencil_texture_lighting.sc | 2 +- .../fs_shadowvolume_svfrontcolor.sc | 2 +- .../fs_shadowvolume_svfronttex2.sc | 2 +- .../fs_shadowvolume_texture_lighting.sc | 1 - .../vs_shadowvolume_color_texture.sc | 3 +- .../vs_shadowvolume_texture.sc | 2 +- .../fs_shadowmaps_color_lighting_esm_csm.sc | 1 - ...hadowmaps_color_lighting_esm_linear_csm.sc | 1 - ...adowmaps_color_lighting_hard_linear_csm.sc | 1 - .../fs_shadowmaps_color_lighting_pcf_csm.sc | 1 - ...hadowmaps_color_lighting_pcf_linear_csm.sc | 1 - ...adowmaps_color_lighting_pcf_linear_omni.sc | 1 - ...hadowmaps_color_lighting_vsm_linear_csm.sc | 1 - ...adowmaps_color_lighting_vsm_linear_omni.sc | 1 - examples/20-nanovg/blendish.h | 316 +- examples/21-deferred/vs_deferred_geom.sc | 2 +- examples/28-wireframe/fs_wf_wireframe.sc | 1 - examples/28-wireframe/vs_wf_wireframe.sc | 1 - examples/31-rsm/vs_rsm_gbuffer.sc | 2 +- examples/31-rsm/vs_rsm_shadow.sc | 2 +- examples/36-sky/fs_sky_landscape.sc | 12 +- examples/36-sky/varying.def.sc | 2 +- .../cs_gdr_occlude_props.sc | 2 +- examples/39-assao/assao.cpp | 2 - examples/39-assao/cs_assao_apply.sc | 13 +- .../cs_assao_generate_importance_map.sc | 6 +- examples/39-assao/cs_assao_generate_q.sh | 40 +- examples/39-assao/cs_assao_generate_q0.sc | 2 +- examples/39-assao/cs_assao_generate_q1.sc | 2 +- examples/39-assao/cs_assao_generate_q2.sc | 2 +- examples/39-assao/cs_assao_generate_q3.sc | 2 +- examples/39-assao/cs_assao_generate_q3base.sc | 2 +- .../39-assao/cs_assao_load_counter_clear.sc | 4 +- examples/39-assao/cs_assao_non_smart_apply.sc | 5 +- examples/39-assao/cs_assao_non_smart_blur.sc | 7 +- .../39-assao/cs_assao_non_smart_half_apply.sc | 4 +- .../cs_assao_postprocess_importance_map_a.sc | 6 +- .../cs_assao_postprocess_importance_map_b.sc | 10 +- .../39-assao/cs_assao_prepare_depth_mip.sc | 14 +- examples/39-assao/cs_assao_prepare_depths.sc | 11 +- .../cs_assao_prepare_depths_and_normals.sc | 28 +- ...s_assao_prepare_depths_and_normals_half.sc | 28 +- .../39-assao/cs_assao_prepare_depths_half.sc | 7 +- examples/39-assao/cs_assao_smart_blur.sc | 7 +- examples/39-assao/cs_assao_smart_blur_wide.sc | 7 +- .../39-assao/fs_assao_deferred_combine.sc | 5 +- examples/39-assao/uniforms.sh | 4 +- examples/39-assao/varying.def.sc | 3 +- examples/39-assao/vs_assao.sc | 3 +- examples/39-assao/vs_assao_gbuffer.sc | 2 +- examples/40-svt/fs_vt_mip.sc | 2 +- examples/40-svt/fs_vt_unlit.sc | 5 +- examples/40-svt/virtualtexture.sh | 6 +- examples/41-tess/uniforms.sh | 2 - .../fs_denoise_spatial_implementation.sh | 2 +- examples/43-denoise/fs_denoise_txaa.sc | 4 +- examples/43-denoise/normal_encoding.sh | 2 +- examples/44-sss/fs_sss_gbuffer.sc | 8 +- examples/44-sss/normal_encoding.sh | 2 +- examples/45-bokeh/bokeh_dof.sh | 2 +- examples/45-bokeh/fs_bokeh_forward.sc | 6 +- examples/46-fsr/ffx_a.h | 40 +- examples/46-fsr/ffx_fsr1.h | 36 +- examples/46-fsr/fs_fsr_forward.sc | 6 +- examples/49-hextile/fs_hextile.sc | 30 +- examples/assets/meshes/tree1b_lod0_2.obj | 1 - examples/assets/meshes/tree1b_lod1_2.obj | 1 - examples/assets/meshes/tree1b_lod2_2.obj | 1 - examples/common/cube_atlas.h | 2 +- examples/common/font/font_manager.cpp | 2 +- .../common/font/fs_font_distance_field.sc | 2 +- examples/common/font/utf8.cpp | 2 +- examples/common/imgui/fs_ocornut_imgui.sc | 2 +- examples/common/imgui/vs_ocornut_imgui.sc | 1 - examples/runtime/shaders/pssl/.gitignore | 2 +- examples/runtime/temp/.gitignore | 2 +- ..._scandal_in_bohemia_arthur_conan_doyle.txt | 4 +- include/bgfx/c99/bgfx.h | 22 +- scripts/bgfx.doxygen | 3616 ++++++++--------- scripts/bindings-d.lua | 134 +- src/bgfx_compute.sh | 2 +- src/dxgi.cpp | 2 +- src/renderer_mtl.h | 2 +- tools/bin/darwin/.gitignore | 2 +- tools/bin/linux/.gitignore | 2 +- tools/bin/windows/.gitignore | 2 +- tools/geometryv/fs_mesh.sc | 2 +- tools/texturev/common.sh | 2 +- 101 files changed, 3729 insertions(+), 3763 deletions(-) diff --git a/README.md b/README.md index 5b236f3bd9c..32f2a525d79 100644 --- a/README.md +++ b/README.md @@ -120,8 +120,8 @@ https://github.com/andr3wmac/Torque6 - Torque 6 is an MIT licensed 3D engine loosely based on Torque2D. Being neither Torque2D or Torque3D it is the 6th derivative of the original Torque Engine. -Torque 6 Material Editor ## Kepler Orbits @@ -148,7 +148,7 @@ C++ and using bgfx to support multiple rendering APIs. http://makingartstudios.itch.io/dls - DLS, the digital logic simulator game. DLS - Creating a 4-bit Register @@ -168,8 +168,8 @@ https://blackshift.itch.io/blackshift - Blackshift is a grid-based, space-themed action puzzle game which isn't afraid of complexity - think Chip's Challenge on crack. -Blackshift Trailer, May 2016 @@ -179,8 +179,8 @@ https://eheitzresearch.wordpress.com/415-2/ - Real-Time Polygonal-Light Shading with Linearly Transformed Cosines, Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt, ACM SIGGRAPH 2016. -Real-Time Polygonal-Light Shading with Linearly Transformed Cosines @@ -190,8 +190,8 @@ http://www.dogbytegames.com/dead_venture.html - Dead Venture is a new Drive 'N Gun game where you help a handful of survivals reach the safe haven: a military base on a far island. -Dead Venture - Gameplay Teaser (iOS / Android) @@ -201,7 +201,7 @@ https://github.com/degenerated1123/REGoth - REGoth is an open-source reimplementation of the zEngine, used by the game "Gothic" and "Gothic II". REGoth Engine @@ -217,8 +217,8 @@ and WYSIWYG editor. http://gorallygame.com/ - Go Rally is top-down rally game with a career mode, multiplayer time challenges, and a track creator. -Go Rally @@ -237,8 +237,8 @@ open-world offroad driving game: explore massive landscapes, complete challenges, smash zombies, find secret locations, unlock and upgrade cars and weapons, it's up to you! -Zombie Safari - Official Gameplay Trailer (Android) @@ -249,8 +249,8 @@ shooter for PC, PS4 & XBoxOne arriving in late 2018. Smith and Winston features a massively destructible voxel world, rapid twin stick combat, physics puzzles and Metroid-style discovery. -Smith and Winston: Gameplay Video @@ -260,8 +260,8 @@ http://www.footballmanager.com/ - Football Manager 2018 is a 2017 football management simulation video game developed by Sports Interactive and published by Sega. -Match Engine | Football Manager 2018 @@ -271,8 +271,8 @@ http://wonderworlds.me/ - WonderWorlds is a place to play thousands of user-created levels and stories, make your own using the extensive in-game tools and share them with whomever you want. -WonderWorlds @@ -288,8 +288,8 @@ focused towards live graphical apps and games. https://outfit7.com/apps/talking-tom-pool/ - A "sling and match" puzzle game for mobile devices. -Talking Tom Pool @@ -306,8 +306,8 @@ engine v3.0. http://www.dogbytegames.com/off_the_road.html - A sandbox off-road driving simulator. -Off The Road @@ -321,8 +321,8 @@ https://beardsvibe.com/ - A multiplayer PVP rhythm game. https://outfit7.com/apps/my-talking-tom-2/ - Many mini games for mobile devices. -My Talking Tom 2 @@ -346,8 +346,8 @@ Hammerwatch. Encounter endless hordes of enemies, traps, puzzles, secrets and lots of loot, as you battle your way through procedurally generated levels to reach the top of the Forsaken Spire. -Heroes of Hammerwatch @@ -365,8 +365,8 @@ SIGGRAPH 2019: Project Nira: Instant Interactive Real-Time Access to Multi-Gigabyte Sized 3D Assets on Any Device: https://s2019.siggraph.org/presentation/?sess=sess104&id=real_130#038;id=real_130 -Heroes of Hammerwatch @@ -468,8 +468,8 @@ vehicle you bet you can hop into it! Pilot big rigs, helicopters, boats, airplanes or even trains. Sand dunes, frozen plains, mountains to climb and conquer. -Off The Road Unleashed @@ -488,8 +488,8 @@ https://klei.com/games/griftlands - Griftlands is a roguelike deck-building game with role-playing story elements in a science fiction setting, developed and published by Klei Entertainment. -Griftlands @@ -508,8 +508,8 @@ Evoke 2022 demoparty. https://github.com/astrofra/demo-marine-melodies -Marine Melodies @@ -570,13 +570,13 @@ https://prototwin.com - Online industrial simulation software for manufacturing ## WARCANA -WARCANA is a fantasy inspired base defence, RTS game with a deck-building mechanic. -Face hundreds of thousands of unrelenting monsters in a battle royale between 30 other -mighty magicians. Build your deck. Prepare your defences. Summon your armies. +WARCANA is a fantasy inspired base defence, RTS game with a deck-building mechanic. +Face hundreds of thousands of unrelenting monsters in a battle royale between 30 other +mighty magicians. Build your deck. Prepare your defences. Summon your armies. Survive the onslaught. -WARCANA Announcement Trailer ## DiskBoard @@ -623,11 +623,11 @@ legacy Direct3D renderer with bgfx. ## Braid, Anniversary Edition -https://play.google.com/store/apps/details?id=com.netflix.NGP.BraidAnniversaryEdition - +https://play.google.com/store/apps/details?id=com.netflix.NGP.BraidAnniversaryEdition - bgfx is used only in Android version of the game. -Braid, Anniversary Edition @@ -636,8 +636,8 @@ width="640" height="480" border="0" /> https://store.steampowered.com/app/2015270/Rotwood/ - Rotwood is an upcoming beat'em up, rogouelike video game developed and published by Klei Entertainment. -Rotwood @@ -653,12 +653,12 @@ Source: https://github.com/cubzh/cubzh ## World Of Goo 2 -https://store.epicgames.com/en-US/p/world-of-goo-2 - Build bridges, -grow towers, terraform terrain, and fuel flying machines in +https://store.epicgames.com/en-US/p/world-of-goo-2 - Build bridges, +grow towers, terraform terrain, and fuel flying machines in the stunning followup to the multi-award winning World of Goo. -World Of Goo 2 @@ -670,17 +670,17 @@ width="640" height="480" border="0" /> Copyright 2010-2024 Branimir Karadzic - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. diff --git a/bindings/bf/bgfx.bf b/bindings/bf/bgfx.bf index f3ff2415ff2..e92136a325e 100644 --- a/bindings/bf/bgfx.bf +++ b/bindings/bf/bgfx.bf @@ -24,178 +24,178 @@ public static class bgfx /// Enable R write. /// WriteR = 0x0000000000000001, - + /// /// Enable G write. /// WriteG = 0x0000000000000002, - + /// /// Enable B write. /// WriteB = 0x0000000000000004, - + /// /// Enable alpha write. /// WriteA = 0x0000000000000008, - + /// /// Enable depth write. /// WriteZ = 0x0000004000000000, - + /// /// Enable RGB write. /// WriteRgb = 0x0000000000000007, - + /// /// Write all channels mask. /// WriteMask = 0x000000400000000f, - + /// /// Enable depth test, less. /// DepthTestLess = 0x0000000000000010, - + /// /// Enable depth test, less or equal. /// DepthTestLequal = 0x0000000000000020, - + /// /// Enable depth test, equal. /// DepthTestEqual = 0x0000000000000030, - + /// /// Enable depth test, greater or equal. /// DepthTestGequal = 0x0000000000000040, - + /// /// Enable depth test, greater. /// DepthTestGreater = 0x0000000000000050, - + /// /// Enable depth test, not equal. /// DepthTestNotequal = 0x0000000000000060, - + /// /// Enable depth test, never. /// DepthTestNever = 0x0000000000000070, - + /// /// Enable depth test, always. /// DepthTestAlways = 0x0000000000000080, DepthTestShift = 4, DepthTestMask = 0x00000000000000f0, - + /// /// 0, 0, 0, 0 /// BlendZero = 0x0000000000001000, - + /// /// 1, 1, 1, 1 /// BlendOne = 0x0000000000002000, - + /// /// Rs, Gs, Bs, As /// BlendSrcColor = 0x0000000000003000, - + /// /// 1-Rs, 1-Gs, 1-Bs, 1-As /// BlendInvSrcColor = 0x0000000000004000, - + /// /// As, As, As, As /// BlendSrcAlpha = 0x0000000000005000, - + /// /// 1-As, 1-As, 1-As, 1-As /// BlendInvSrcAlpha = 0x0000000000006000, - + /// /// Ad, Ad, Ad, Ad /// BlendDstAlpha = 0x0000000000007000, - + /// /// 1-Ad, 1-Ad, 1-Ad ,1-Ad /// BlendInvDstAlpha = 0x0000000000008000, - + /// /// Rd, Gd, Bd, Ad /// BlendDstColor = 0x0000000000009000, - + /// /// 1-Rd, 1-Gd, 1-Bd, 1-Ad /// BlendInvDstColor = 0x000000000000a000, - + /// /// f, f, f, 1; f = min(As, 1-Ad) /// BlendSrcAlphaSat = 0x000000000000b000, - + /// /// Blend factor /// BlendFactor = 0x000000000000c000, - + /// /// 1-Blend factor /// BlendInvFactor = 0x000000000000d000, BlendShift = 12, BlendMask = 0x000000000ffff000, - + /// /// Blend add: src + dst. /// BlendEquationAdd = 0x0000000000000000, - + /// /// Blend subtract: src - dst. /// BlendEquationSub = 0x0000000010000000, - + /// /// Blend reverse subtract: dst - src. /// BlendEquationRevsub = 0x0000000020000000, - + /// /// Blend min: min(src, dst). /// BlendEquationMin = 0x0000000030000000, - + /// /// Blend max: max(src, dst). /// BlendEquationMax = 0x0000000040000000, BlendEquationShift = 28, BlendEquationMask = 0x00000003f0000000, - + /// /// Cull clockwise triangles. /// CullCw = 0x0000001000000000, - + /// /// Cull counter-clockwise triangles. /// @@ -204,22 +204,22 @@ public static class bgfx CullMask = 0x0000003000000000, AlphaRefShift = 40, AlphaRefMask = 0x0000ff0000000000, - + /// /// Tristrip. /// PtTristrip = 0x0001000000000000, - + /// /// Lines. /// PtLines = 0x0002000000000000, - + /// /// Line strip. /// PtLinestrip = 0x0003000000000000, - + /// /// Points. /// @@ -228,42 +228,42 @@ public static class bgfx PtMask = 0x0007000000000000, PointSizeShift = 52, PointSizeMask = 0x00f0000000000000, - + /// /// Enable MSAA rasterization. /// Msaa = 0x0100000000000000, - + /// /// Enable line AA rasterization. /// Lineaa = 0x0200000000000000, - + /// /// Enable conservative rasterization. /// ConservativeRaster = 0x0400000000000000, - + /// /// No state. /// None = 0x0000000000000000, - + /// /// Front counter-clockwise (default is clockwise). /// FrontCcw = 0x0000008000000000, - + /// /// Enable blend independent. /// BlendIndependent = 0x0000000400000000, - + /// /// Enable alpha to coverage. /// BlendAlphaToCoverage = 0x0000000800000000, - + /// /// Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise /// culling and MSAA (when writing into MSAA frame buffer, otherwise this flag is ignored). @@ -273,7 +273,7 @@ public static class bgfx ReservedShift = 61, ReservedMask = 0xe000000000000000, } - + [AllowDuplicates] public enum StencilFlags : uint32 { @@ -284,168 +284,168 @@ public static class bgfx None = 0x00000000, Mask = 0xffffffff, Default = 0x00000000, - + /// /// Enable stencil test, less. /// TestLess = 0x00010000, - + /// /// Enable stencil test, less or equal. /// TestLequal = 0x00020000, - + /// /// Enable stencil test, equal. /// TestEqual = 0x00030000, - + /// /// Enable stencil test, greater or equal. /// TestGequal = 0x00040000, - + /// /// Enable stencil test, greater. /// TestGreater = 0x00050000, - + /// /// Enable stencil test, not equal. /// TestNotequal = 0x00060000, - + /// /// Enable stencil test, never. /// TestNever = 0x00070000, - + /// /// Enable stencil test, always. /// TestAlways = 0x00080000, TestShift = 16, TestMask = 0x000f0000, - + /// /// Zero. /// OpFailSZero = 0x00000000, - + /// /// Keep. /// OpFailSKeep = 0x00100000, - + /// /// Replace. /// OpFailSReplace = 0x00200000, - + /// /// Increment and wrap. /// OpFailSIncr = 0x00300000, - + /// /// Increment and clamp. /// OpFailSIncrsat = 0x00400000, - + /// /// Decrement and wrap. /// OpFailSDecr = 0x00500000, - + /// /// Decrement and clamp. /// OpFailSDecrsat = 0x00600000, - + /// /// Invert. /// OpFailSInvert = 0x00700000, OpFailSShift = 20, OpFailSMask = 0x00f00000, - + /// /// Zero. /// OpFailZZero = 0x00000000, - + /// /// Keep. /// OpFailZKeep = 0x01000000, - + /// /// Replace. /// OpFailZReplace = 0x02000000, - + /// /// Increment and wrap. /// OpFailZIncr = 0x03000000, - + /// /// Increment and clamp. /// OpFailZIncrsat = 0x04000000, - + /// /// Decrement and wrap. /// OpFailZDecr = 0x05000000, - + /// /// Decrement and clamp. /// OpFailZDecrsat = 0x06000000, - + /// /// Invert. /// OpFailZInvert = 0x07000000, OpFailZShift = 24, OpFailZMask = 0x0f000000, - + /// /// Zero. /// OpPassZZero = 0x00000000, - + /// /// Keep. /// OpPassZKeep = 0x10000000, - + /// /// Replace. /// OpPassZReplace = 0x20000000, - + /// /// Increment and wrap. /// OpPassZIncr = 0x30000000, - + /// /// Increment and clamp. /// OpPassZIncrsat = 0x40000000, - + /// /// Decrement and wrap. /// OpPassZDecr = 0x50000000, - + /// /// Decrement and clamp. /// OpPassZDecrsat = 0x60000000, - + /// /// Invert. /// @@ -453,7 +453,7 @@ public static class bgfx OpPassZShift = 28, OpPassZMask = 0xf0000000, } - + [AllowDuplicates] public enum ClearFlags : uint16 { @@ -461,67 +461,67 @@ public static class bgfx /// No clear flags. /// None = 0x0000, - + /// /// Clear color. /// Color = 0x0001, - + /// /// Clear depth. /// Depth = 0x0002, - + /// /// Clear stencil. /// Stencil = 0x0004, - + /// /// Discard frame buffer attachment 0. /// DiscardColor0 = 0x0008, - + /// /// Discard frame buffer attachment 1. /// DiscardColor1 = 0x0010, - + /// /// Discard frame buffer attachment 2. /// DiscardColor2 = 0x0020, - + /// /// Discard frame buffer attachment 3. /// DiscardColor3 = 0x0040, - + /// /// Discard frame buffer attachment 4. /// DiscardColor4 = 0x0080, - + /// /// Discard frame buffer attachment 5. /// DiscardColor5 = 0x0100, - + /// /// Discard frame buffer attachment 6. /// DiscardColor6 = 0x0200, - + /// /// Discard frame buffer attachment 7. /// DiscardColor7 = 0x0400, - + /// /// Discard frame buffer depth attachment. /// DiscardDepth = 0x0800, - + /// /// Discard frame buffer stencil attachment. /// @@ -529,7 +529,7 @@ public static class bgfx DiscardColorMask = 0x07f8, DiscardMask = 0x1ff8, } - + [AllowDuplicates] public enum DiscardFlags : uint32 { @@ -537,43 +537,43 @@ public static class bgfx /// Preserve everything. /// None = 0x00000000, - + /// /// Discard texture sampler and buffer bindings. /// Bindings = 0x00000001, - + /// /// Discard index buffer. /// IndexBuffer = 0x00000002, - + /// /// Discard instance data. /// InstanceData = 0x00000004, - + /// /// Discard state and uniform bindings. /// State = 0x00000008, - + /// /// Discard transform. /// Transform = 0x00000010, - + /// /// Discard vertex streams. /// VertexStreams = 0x00000020, - + /// /// Discard all states. /// All = 0x000000ff, } - + [AllowDuplicates] public enum DebugFlags : uint32 { @@ -581,34 +581,34 @@ public static class bgfx /// No debug. /// None = 0x00000000, - + /// /// Enable wireframe for all primitives. /// Wireframe = 0x00000001, - + /// /// Enable infinitely fast hardware test. No draw calls will be submitted to driver. /// It's useful when profiling to quickly assess bottleneck between CPU and GPU. /// Ifh = 0x00000002, - + /// /// Enable statistics display. /// Stats = 0x00000004, - + /// /// Enable debug text display. /// Text = 0x00000008, - + /// /// Enable profiler. This causes per-view statistics to be collected, available through `bgfx::Stats::ViewStats`. This is unrelated to the profiler functions in `bgfx::CallbackI`. /// Profiler = 0x00000010, } - + [AllowDuplicates] public enum BufferFlags : uint16 { @@ -616,59 +616,59 @@ public static class bgfx /// 1 8-bit value /// ComputeFormat8x1 = 0x0001, - + /// /// 2 8-bit values /// ComputeFormat8x2 = 0x0002, - + /// /// 4 8-bit values /// ComputeFormat8x4 = 0x0003, - + /// /// 1 16-bit value /// ComputeFormat16x1 = 0x0004, - + /// /// 2 16-bit values /// ComputeFormat16x2 = 0x0005, - + /// /// 4 16-bit values /// ComputeFormat16x4 = 0x0006, - + /// /// 1 32-bit value /// ComputeFormat32x1 = 0x0007, - + /// /// 2 32-bit values /// ComputeFormat32x2 = 0x0008, - + /// /// 4 32-bit values /// ComputeFormat32x4 = 0x0009, ComputeFormatShift = 0, ComputeFormatMask = 0x000f, - + /// /// Type `int`. /// ComputeTypeInt = 0x0010, - + /// /// Type `uint`. /// ComputeTypeUint = 0x0020, - + /// /// Type `float`. /// @@ -676,91 +676,91 @@ public static class bgfx ComputeTypeShift = 4, ComputeTypeMask = 0x0030, None = 0x0000, - + /// /// Buffer will be read by shader. /// ComputeRead = 0x0100, - + /// /// Buffer will be used for writing. /// ComputeWrite = 0x0200, - + /// /// Buffer will be used for storing draw indirect commands. /// DrawIndirect = 0x0400, - + /// /// Allow dynamic index/vertex buffer resize during update. /// AllowResize = 0x0800, - + /// /// Index buffer contains 32-bit indices. /// Index32 = 0x1000, ComputeReadWrite = 0x0300, } - + [AllowDuplicates] public enum TextureFlags : uint64 { None = 0x0000000000000000, - + /// /// Texture will be used for MSAA sampling. /// MsaaSample = 0x0000000800000000, - + /// /// Render target no MSAA. /// Rt = 0x0000001000000000, - + /// /// Texture will be used for compute write. /// ComputeWrite = 0x0000100000000000, - + /// /// Sample texture as sRGB. /// Srgb = 0x0000200000000000, - + /// /// Texture will be used as blit destination. /// BlitDst = 0x0000400000000000, - + /// /// Texture will be used for read back from GPU. /// ReadBack = 0x0000800000000000, - + /// /// Render target MSAAx2 mode. /// RtMsaaX2 = 0x0000002000000000, - + /// /// Render target MSAAx4 mode. /// RtMsaaX4 = 0x0000003000000000, - + /// /// Render target MSAAx8 mode. /// RtMsaaX8 = 0x0000004000000000, - + /// /// Render target MSAAx16 mode. /// RtMsaaX16 = 0x0000005000000000, RtMsaaShift = 36, RtMsaaMask = 0x0000007000000000, - + /// /// Render target will be used for writing /// @@ -768,7 +768,7 @@ public static class bgfx RtShift = 36, RtMask = 0x000000f000000000, } - + [AllowDuplicates] public enum SamplerFlags : uint32 { @@ -776,119 +776,119 @@ public static class bgfx /// Wrap U mode: Mirror /// UMirror = 0x00000001, - + /// /// Wrap U mode: Clamp /// UClamp = 0x00000002, - + /// /// Wrap U mode: Border /// UBorder = 0x00000003, UShift = 0, UMask = 0x00000003, - + /// /// Wrap V mode: Mirror /// VMirror = 0x00000004, - + /// /// Wrap V mode: Clamp /// VClamp = 0x00000008, - + /// /// Wrap V mode: Border /// VBorder = 0x0000000c, VShift = 2, VMask = 0x0000000c, - + /// /// Wrap W mode: Mirror /// WMirror = 0x00000010, - + /// /// Wrap W mode: Clamp /// WClamp = 0x00000020, - + /// /// Wrap W mode: Border /// WBorder = 0x00000030, WShift = 4, WMask = 0x00000030, - + /// /// Min sampling mode: Point /// MinPoint = 0x00000040, - + /// /// Min sampling mode: Anisotropic /// MinAnisotropic = 0x00000080, MinShift = 6, MinMask = 0x000000c0, - + /// /// Mag sampling mode: Point /// MagPoint = 0x00000100, - + /// /// Mag sampling mode: Anisotropic /// MagAnisotropic = 0x00000200, MagShift = 8, MagMask = 0x00000300, - + /// /// Mip sampling mode: Point /// MipPoint = 0x00000400, MipShift = 10, MipMask = 0x00000400, - + /// /// Compare when sampling depth texture: less. /// CompareLess = 0x00010000, - + /// /// Compare when sampling depth texture: less or equal. /// CompareLequal = 0x00020000, - + /// /// Compare when sampling depth texture: equal. /// CompareEqual = 0x00030000, - + /// /// Compare when sampling depth texture: greater or equal. /// CompareGequal = 0x00040000, - + /// /// Compare when sampling depth texture: greater. /// CompareGreater = 0x00050000, - + /// /// Compare when sampling depth texture: not equal. /// CompareNotequal = 0x00060000, - + /// /// Compare when sampling depth texture: never. /// CompareNever = 0x00070000, - + /// /// Compare when sampling depth texture: always. /// @@ -900,7 +900,7 @@ public static class bgfx ReservedShift = 28, ReservedMask = 0xf0000000, None = 0x00000000, - + /// /// Sample stencil instead of depth. /// @@ -911,7 +911,7 @@ public static class bgfx UvwBorder = 0x0000003f, BitsMask = 0x000f07ff, } - + [AllowDuplicates] public enum ResetFlags : uint32 { @@ -919,85 +919,85 @@ public static class bgfx /// Enable 2x MSAA. /// MsaaX2 = 0x00000010, - + /// /// Enable 4x MSAA. /// MsaaX4 = 0x00000020, - + /// /// Enable 8x MSAA. /// MsaaX8 = 0x00000030, - + /// /// Enable 16x MSAA. /// MsaaX16 = 0x00000040, MsaaShift = 4, MsaaMask = 0x00000070, - + /// /// No reset flags. /// None = 0x00000000, - + /// /// Not supported yet. /// Fullscreen = 0x00000001, - + /// /// Enable V-Sync. /// Vsync = 0x00000080, - + /// /// Turn on/off max anisotropy. /// Maxanisotropy = 0x00000100, - + /// /// Begin screen capture. /// Capture = 0x00000200, - + /// /// Flush rendering after submitting to GPU. /// FlushAfterRender = 0x00002000, - + /// /// This flag specifies where flip occurs. Default behaviour is that flip occurs /// before rendering new frame. This flag only has effect when `BGFX_CONFIG_MULTITHREADED=0`. /// FlipAfterRender = 0x00004000, - + /// /// Enable sRGB backbuffer. /// SrgbBackbuffer = 0x00008000, - + /// /// Enable HDR10 rendering. /// Hdr10 = 0x00010000, - + /// /// Enable HiDPI rendering. /// Hidpi = 0x00020000, - + /// /// Enable depth clamp. /// DepthClamp = 0x00040000, - + /// /// Suspend rendering. /// Suspend = 0x00080000, - + /// /// Transparent backbuffer. Availability depends on: `BGFX_CAPS_TRANSPARENT_BACKBUFFER`. /// @@ -1007,7 +1007,7 @@ public static class bgfx ReservedShift = 31, ReservedMask = 0x80000000, } - + [AllowDuplicates] public enum CapsFlags : uint64 { @@ -1015,159 +1015,159 @@ public static class bgfx /// Alpha to coverage is supported. /// AlphaToCoverage = 0x0000000000000001, - + /// /// Blend independent is supported. /// BlendIndependent = 0x0000000000000002, - + /// /// Compute shaders are supported. /// Compute = 0x0000000000000004, - + /// /// Conservative rasterization is supported. /// ConservativeRaster = 0x0000000000000008, - + /// /// Draw indirect is supported. /// DrawIndirect = 0x0000000000000010, - + /// /// Draw indirect with indirect count is supported. /// DrawIndirectCount = 0x0000000000000020, - + /// /// Fragment depth is available in fragment shader. /// FragmentDepth = 0x0000000000000040, - + /// /// Fragment ordering is available in fragment shader. /// FragmentOrdering = 0x0000000000000080, - + /// /// Graphics debugger is present. /// GraphicsDebugger = 0x0000000000000100, - + /// /// HDR10 rendering is supported. /// Hdr10 = 0x0000000000000200, - + /// /// HiDPI rendering is supported. /// Hidpi = 0x0000000000000400, - + /// /// Image Read/Write is supported. /// ImageRw = 0x0000000000000800, - + /// /// 32-bit indices are supported. /// Index32 = 0x0000000000001000, - + /// /// Instancing is supported. /// Instancing = 0x0000000000002000, - + /// /// Occlusion query is supported. /// OcclusionQuery = 0x0000000000004000, - + /// /// PrimitiveID is available in fragment shader. /// PrimitiveId = 0x0000000000008000, - + /// /// Renderer is on separate thread. /// RendererMultithreaded = 0x0000000000010000, - + /// /// Multiple windows are supported. /// SwapChain = 0x0000000000020000, - + /// /// Texture blit is supported. /// TextureBlit = 0x0000000000040000, - + /// /// Texture compare less equal mode is supported. /// TextureCompareLequal = 0x0000000000080000, TextureCompareReserved = 0x0000000000100000, - + /// /// Cubemap texture array is supported. /// TextureCubeArray = 0x0000000000200000, - + /// /// CPU direct access to GPU texture memory. /// TextureDirectAccess = 0x0000000000400000, - + /// /// Read-back texture is supported. /// TextureReadBack = 0x0000000000800000, - + /// /// 2D texture array is supported. /// Texture2dArray = 0x0000000001000000, - + /// /// 3D textures are supported. /// Texture3d = 0x0000000002000000, - + /// /// Transparent back buffer supported. /// TransparentBackbuffer = 0x0000000004000000, - + /// /// Vertex attribute half-float is supported. /// VertexAttribHalf = 0x0000000008000000, - + /// /// Vertex attribute 10_10_10_2 is supported. /// VertexAttribUint10 = 0x0000000010000000, - + /// /// Rendering with VertexID only is supported. /// VertexId = 0x0000000020000000, - + /// /// Viewport layer is available in vertex shader. /// ViewportLayerArray = 0x0000000040000000, - + /// /// All texture compare modes are supported. /// TextureCompareAll = 0x0000000000180000, } - + [AllowDuplicates] public enum CapsFormatFlags : uint32 { @@ -1175,88 +1175,88 @@ public static class bgfx /// Texture format is not supported. /// TextureNone = 0x00000000, - + /// /// Texture format is supported. /// Texture2d = 0x00000001, - + /// /// Texture as sRGB format is supported. /// Texture2dSrgb = 0x00000002, - + /// /// Texture format is emulated. /// Texture2dEmulated = 0x00000004, - + /// /// Texture format is supported. /// Texture3d = 0x00000008, - + /// /// Texture as sRGB format is supported. /// Texture3dSrgb = 0x00000010, - + /// /// Texture format is emulated. /// Texture3dEmulated = 0x00000020, - + /// /// Texture format is supported. /// TextureCube = 0x00000040, - + /// /// Texture as sRGB format is supported. /// TextureCubeSrgb = 0x00000080, - + /// /// Texture format is emulated. /// TextureCubeEmulated = 0x00000100, - + /// /// Texture format can be used from vertex shader. /// TextureVertex = 0x00000200, - + /// /// Texture format can be used as image and read from. /// TextureImageRead = 0x00000400, - + /// /// Texture format can be used as image and written to. /// TextureImageWrite = 0x00000800, - + /// /// Texture format can be used as frame buffer. /// TextureFramebuffer = 0x00001000, - + /// /// Texture format can be used as MSAA frame buffer. /// TextureFramebufferMsaa = 0x00002000, - + /// /// Texture can be sampled as MSAA. /// TextureMsaa = 0x00004000, - + /// /// Texture format supports auto-generated mips. /// TextureMipAutogen = 0x00008000, } - + [AllowDuplicates] public enum ResolveFlags : uint32 { @@ -1264,13 +1264,13 @@ public static class bgfx /// No resolve flags. /// None = 0x00000000, - + /// /// Auto-generate mip maps on resolve. /// AutoGenMips = 0x00000001, } - + [AllowDuplicates] public enum PciIdFlags : uint16 { @@ -1278,43 +1278,43 @@ public static class bgfx /// Autoselect adapter. /// None = 0x0000, - + /// /// Software rasterizer. /// SoftwareRasterizer = 0x0001, - + /// /// AMD adapter. /// Amd = 0x1002, - + /// /// Apple adapter. /// Apple = 0x106b, - + /// /// Intel adapter. /// Intel = 0x8086, - + /// /// nVidia adapter. /// Nvidia = 0x10de, - + /// /// Microsoft adapter. /// Microsoft = 0x1414, - + /// /// ARM adapter. /// Arm = 0x13b5, } - + [AllowDuplicates] public enum CubeMapFlags : uint32 { @@ -1322,33 +1322,33 @@ public static class bgfx /// Cubemap +x. /// PositiveX = 0x00000000, - + /// /// Cubemap -x. /// NegativeX = 0x00000001, - + /// /// Cubemap +y. /// PositiveY = 0x00000002, - + /// /// Cubemap -y. /// NegativeY = 0x00000003, - + /// /// Cubemap +z. /// PositiveZ = 0x00000004, - + /// /// Cubemap -z. /// NegativeZ = 0x00000005, } - + [AllowDuplicates] public enum Fatal : uint32 { @@ -1357,10 +1357,10 @@ public static class bgfx UnableToInitialize, UnableToCreateTexture, DeviceLost, - + Count } - + [AllowDuplicates] public enum RendererType : uint32 { @@ -1368,55 +1368,55 @@ public static class bgfx /// No rendering. /// Noop, - + /// /// AGC /// Agc, - + /// /// Direct3D 11.0 /// Direct3D11, - + /// /// Direct3D 12.0 /// Direct3D12, - + /// /// GNM /// Gnm, - + /// /// Metal /// Metal, - + /// /// NVN /// Nvn, - + /// /// OpenGL ES 2.0+ /// OpenGLES, - + /// /// OpenGL 2.1+ /// OpenGL, - + /// /// Vulkan /// Vulkan, - + Count } - + [AllowDuplicates] public enum Access : uint32 { @@ -1424,20 +1424,20 @@ public static class bgfx /// Read. /// Read, - + /// /// Write. /// Write, - + /// /// Read and write. /// ReadWrite, - + Count } - + [AllowDuplicates] public enum Attrib : uint32 { @@ -1445,95 +1445,95 @@ public static class bgfx /// a_position /// Position, - + /// /// a_normal /// Normal, - + /// /// a_tangent /// Tangent, - + /// /// a_bitangent /// Bitangent, - + /// /// a_color0 /// Color0, - + /// /// a_color1 /// Color1, - + /// /// a_color2 /// Color2, - + /// /// a_color3 /// Color3, - + /// /// a_indices /// Indices, - + /// /// a_weight /// Weight, - + /// /// a_texcoord0 /// TexCoord0, - + /// /// a_texcoord1 /// TexCoord1, - + /// /// a_texcoord2 /// TexCoord2, - + /// /// a_texcoord3 /// TexCoord3, - + /// /// a_texcoord4 /// TexCoord4, - + /// /// a_texcoord5 /// TexCoord5, - + /// /// a_texcoord6 /// TexCoord6, - + /// /// a_texcoord7 /// TexCoord7, - + Count } - + [AllowDuplicates] public enum AttribType : uint32 { @@ -1541,30 +1541,30 @@ public static class bgfx /// Uint8 /// Uint8, - + /// /// Uint10, availability depends on: `BGFX_CAPS_VERTEX_ATTRIB_UINT10`. /// Uint10, - + /// /// Int16 /// Int16, - + /// /// Half, availability depends on: `BGFX_CAPS_VERTEX_ATTRIB_HALF`. /// Half, - + /// /// Float /// Float, - + Count } - + [AllowDuplicates] public enum TextureFormat : uint32 { @@ -1572,172 +1572,172 @@ public static class bgfx /// DXT1 R5G6B5A1 /// BC1, - + /// /// DXT3 R5G6B5A4 /// BC2, - + /// /// DXT5 R5G6B5A8 /// BC3, - + /// /// LATC1/ATI1 R8 /// BC4, - + /// /// LATC2/ATI2 RG8 /// BC5, - + /// /// BC6H RGB16F /// BC6H, - + /// /// BC7 RGB 4-7 bits per color channel, 0-8 bits alpha /// BC7, - + /// /// ETC1 RGB8 /// ETC1, - + /// /// ETC2 RGB8 /// ETC2, - + /// /// ETC2 RGBA8 /// ETC2A, - + /// /// ETC2 RGB8A1 /// ETC2A1, - + /// /// PVRTC1 RGB 2BPP /// PTC12, - + /// /// PVRTC1 RGB 4BPP /// PTC14, - + /// /// PVRTC1 RGBA 2BPP /// PTC12A, - + /// /// PVRTC1 RGBA 4BPP /// PTC14A, - + /// /// PVRTC2 RGBA 2BPP /// PTC22, - + /// /// PVRTC2 RGBA 4BPP /// PTC24, - + /// /// ATC RGB 4BPP /// ATC, - + /// /// ATCE RGBA 8 BPP explicit alpha /// ATCE, - + /// /// ATCI RGBA 8 BPP interpolated alpha /// ATCI, - + /// /// ASTC 4x4 8.0 BPP /// ASTC4x4, - + /// /// ASTC 5x4 6.40 BPP /// ASTC5x4, - + /// /// ASTC 5x5 5.12 BPP /// ASTC5x5, - + /// /// ASTC 6x5 4.27 BPP /// ASTC6x5, - + /// /// ASTC 6x6 3.56 BPP /// ASTC6x6, - + /// /// ASTC 8x5 3.20 BPP /// ASTC8x5, - + /// /// ASTC 8x6 2.67 BPP /// ASTC8x6, - + /// /// ASTC 8x8 2.00 BPP /// ASTC8x8, - + /// /// ASTC 10x5 2.56 BPP /// ASTC10x5, - + /// /// ASTC 10x6 2.13 BPP /// ASTC10x6, - + /// /// ASTC 10x8 1.60 BPP /// ASTC10x8, - + /// /// ASTC 10x10 1.28 BPP /// ASTC10x10, - + /// /// ASTC 12x10 1.07 BPP /// ASTC12x10, - + /// /// ASTC 12x12 0.89 BPP /// ASTC12x12, - + /// /// Compressed formats above. /// @@ -1794,7 +1794,7 @@ public static class bgfx RGB5A1, RGB10A2, RG11B10F, - + /// /// Depth formats below. /// @@ -1807,10 +1807,10 @@ public static class bgfx D24F, D32F, D0S8, - + Count } - + [AllowDuplicates] public enum UniformType : uint32 { @@ -1818,30 +1818,30 @@ public static class bgfx /// Sampler. /// Sampler, - + /// /// Reserved, do not use. /// End, - + /// /// 4 floats vector. /// Vec4, - + /// /// 3x3 matrix. /// Mat3, - + /// /// 4x4 matrix. /// Mat4, - + Count } - + [AllowDuplicates] public enum BackbufferRatio : uint32 { @@ -1849,35 +1849,35 @@ public static class bgfx /// Equal to backbuffer. /// Equal, - + /// /// One half size of backbuffer. /// Half, - + /// /// One quarter size of backbuffer. /// Quarter, - + /// /// One eighth size of backbuffer. /// Eighth, - + /// /// One sixteenth size of backbuffer. /// Sixteenth, - + /// /// Double size of backbuffer. /// Double, - + Count } - + [AllowDuplicates] public enum OcclusionQueryResult : uint32 { @@ -1885,20 +1885,20 @@ public static class bgfx /// Query failed test. /// Invisible, - + /// /// Query passed test. /// Visible, - + /// /// Query result is not available yet. /// NoResult, - + Count } - + [AllowDuplicates] public enum Topology : uint32 { @@ -1906,30 +1906,30 @@ public static class bgfx /// Triangle list. /// TriList, - + /// /// Triangle strip. /// TriStrip, - + /// /// Line list. /// LineList, - + /// /// Line strip. /// LineStrip, - + /// /// Point list. /// PointList, - + Count } - + [AllowDuplicates] public enum TopologyConvert : uint32 { @@ -1937,30 +1937,30 @@ public static class bgfx /// Flip winding order of triangle list. /// TriListFlipWinding, - + /// /// Flip winding order of triangle strip. /// TriStripFlipWinding, - + /// /// Convert triangle list to line list. /// TriListToLineList, - + /// /// Convert triangle strip to triangle list. /// TriStripToTriList, - + /// /// Convert line strip to line list. /// LineStripToLineList, - + Count } - + [AllowDuplicates] public enum TopologySort : uint32 { @@ -1976,10 +1976,10 @@ public static class bgfx DistanceBackToFrontMin, DistanceBackToFrontAvg, DistanceBackToFrontMax, - + Count } - + [AllowDuplicates] public enum ViewMode : uint32 { @@ -1987,25 +1987,25 @@ public static class bgfx /// Default sort order. /// Default, - + /// /// Sort in the same order in which submit calls were called. /// Sequential, - + /// /// Sort draw call depth in ascending order. /// DepthAscending, - + /// /// Sort draw call depth in descending order. /// DepthDescending, - + Count } - + [AllowDuplicates] public enum NativeWindowHandleType : uint32 { @@ -2013,15 +2013,15 @@ public static class bgfx /// Platform default handle type (X11 on Linux). /// Default, - + /// /// Wayland. /// Wayland, - + Count } - + [AllowDuplicates] public enum RenderFrame : uint32 { @@ -2029,25 +2029,25 @@ public static class bgfx /// Renderer context is not created yet. /// NoContext, - + /// /// Renderer context is created and rendering. /// Render, - + /// /// Renderer context wait for main thread signal timed out without rendering. /// Timeout, - + /// /// Renderer context is getting destroyed. /// Exiting, - + Count } - + [CRepr] public struct Caps { @@ -2057,7 +2057,7 @@ public static class bgfx public uint16 vendorId; public uint16 deviceId; } - + [CRepr] public struct Limits { @@ -2086,7 +2086,7 @@ public static class bgfx public uint32 transientVbSize; public uint32 transientIbSize; } - + public RendererType rendererType; public uint64 supported; public uint16 vendorId; @@ -2098,14 +2098,14 @@ public static class bgfx public Limits limits; public uint16[96] formats; } - + [CRepr] public struct InternalData { public Caps* caps; public void* context; } - + [CRepr] public struct PlatformData { @@ -2116,7 +2116,7 @@ public static class bgfx public void* backBufferDS; public NativeWindowHandleType type; } - + [CRepr] public struct Resolution { @@ -2128,7 +2128,7 @@ public static class bgfx public uint8 maxFrameLatency; public uint8 debugTextScale; } - + [CRepr] public struct Init { @@ -2140,7 +2140,7 @@ public static class bgfx public uint32 transientVbSize; public uint32 transientIbSize; } - + public RendererType type; public uint16 vendorId; public uint16 deviceId; @@ -2153,14 +2153,14 @@ public static class bgfx public void* callback; public void* allocator; } - + [CRepr] public struct Memory { public uint8* data; public uint32 size; } - + [CRepr] public struct TransientIndexBuffer { @@ -2170,7 +2170,7 @@ public static class bgfx public IndexBufferHandle handle; public uint8 isIndex16; } - + [CRepr] public struct TransientVertexBuffer { @@ -2181,7 +2181,7 @@ public static class bgfx public VertexBufferHandle handle; public VertexLayoutHandle layoutHandle; } - + [CRepr] public struct InstanceDataBuffer { @@ -2192,7 +2192,7 @@ public static class bgfx public uint16 stride; public VertexBufferHandle handle; } - + [CRepr] public struct TextureInfo { @@ -2206,7 +2206,7 @@ public static class bgfx public uint8 bitsPerPixel; public uint8 cubeMap; } - + [CRepr] public struct UniformInfo { @@ -2214,7 +2214,7 @@ public static class bgfx public UniformType type; public uint16 num; } - + [CRepr] public struct Attachment { @@ -2225,14 +2225,14 @@ public static class bgfx public uint16 numLayers; public uint8 resolve; } - + [CRepr] public struct Transform { public float* data; public uint16 num; } - + [CRepr] public struct ViewStats { @@ -2244,14 +2244,14 @@ public static class bgfx public int64 gpuTimeEnd; public uint32 gpuFrameNum; } - + [CRepr] public struct EncoderStats { public int64 cpuTimeBegin; public int64 cpuTimeEnd; } - + [CRepr] public struct Stats { @@ -2296,7 +2296,7 @@ public static class bgfx public uint8 numEncoders; public EncoderStats* encoderStats; } - + [CRepr] public struct VertexLayout { @@ -2305,84 +2305,84 @@ public static class bgfx public uint16[18] offset; public uint16[18] attributes; } - + [CRepr] public struct Encoder { } - + [CRepr] public struct DynamicIndexBufferHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct DynamicVertexBufferHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct FrameBufferHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct IndexBufferHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct IndirectBufferHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct OcclusionQueryHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct ProgramHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct ShaderHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct TextureHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct UniformHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct VertexBufferHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + [CRepr] public struct VertexLayoutHandle { public uint16 idx; public bool Valid => idx != uint16.MaxValue; } - + /// /// Init attachment. @@ -2397,7 +2397,7 @@ public static class bgfx /// [LinkName("bgfx_attachment_init")] public static extern void attachment_init(Attachment* _this, TextureHandle _handle, Access _access, uint16 _layer, uint16 _numLayers, uint16 _mip, uint8 _resolve); - + /// /// Start VertexLayout. /// @@ -2406,7 +2406,7 @@ public static class bgfx /// [LinkName("bgfx_vertex_layout_begin")] public static extern VertexLayout* vertex_layout_begin(VertexLayout* _this, RendererType _rendererType); - + /// /// Add attribute to VertexLayout. /// @remarks Must be called between begin/end. @@ -2420,7 +2420,7 @@ public static class bgfx /// [LinkName("bgfx_vertex_layout_add")] public static extern VertexLayout* vertex_layout_add(VertexLayout* _this, Attrib _attrib, uint8 _num, AttribType _type, bool _normalized, bool _asInt); - + /// /// Decode attribute. /// @@ -2433,7 +2433,7 @@ public static class bgfx /// [LinkName("bgfx_vertex_layout_decode")] public static extern void vertex_layout_decode(VertexLayout* _this, Attrib _attrib, uint8 * _num, AttribType* _type, bool* _normalized, bool* _asInt); - + /// /// Skip `_num` bytes in vertex stream. /// @@ -2442,14 +2442,14 @@ public static class bgfx /// [LinkName("bgfx_vertex_layout_skip")] public static extern VertexLayout* vertex_layout_skip(VertexLayout* _this, uint8 _num); - + /// /// End VertexLayout. /// /// [LinkName("bgfx_vertex_layout_end")] public static extern void vertex_layout_end(VertexLayout* _this); - + /// /// Pack vertex attribute into vertex stream format. /// @@ -2463,7 +2463,7 @@ public static class bgfx /// [LinkName("bgfx_vertex_pack")] public static extern void vertex_pack(float _input, bool _inputNormalized, Attrib _attr, VertexLayout* _layout, void* _data, uint32 _index); - + /// /// Unpack vertex attribute from vertex stream format. /// @@ -2476,7 +2476,7 @@ public static class bgfx /// [LinkName("bgfx_vertex_unpack")] public static extern void vertex_unpack(float _output, Attrib _attr, VertexLayout* _layout, void* _data, uint32 _index); - + /// /// Converts vertex stream data from one vertex stream format to another. /// @@ -2489,7 +2489,7 @@ public static class bgfx /// [LinkName("bgfx_vertex_convert")] public static extern void vertex_convert(VertexLayout* _dstLayout, void* _dstData, VertexLayout* _srcLayout, void* _srcData, uint32 _num); - + /// /// Weld vertices. /// @@ -2503,7 +2503,7 @@ public static class bgfx /// [LinkName("bgfx_weld_vertices")] public static extern uint32 weld_vertices(void* _output, VertexLayout* _layout, void* _data, uint32 _num, bool _index32, float _epsilon); - + /// /// Convert index buffer for use with different primitive topologies. /// @@ -2517,7 +2517,7 @@ public static class bgfx /// [LinkName("bgfx_topology_convert")] public static extern uint32 topology_convert(TopologyConvert _conversion, void* _dst, uint32 _dstSize, void* _indices, uint32 _numIndices, bool _index32); - + /// /// Sort indices. /// @@ -2535,7 +2535,7 @@ public static class bgfx /// [LinkName("bgfx_topology_sort_tri_list")] public static extern void topology_sort_tri_list(TopologySort _sort, void* _dst, uint32 _dstSize, float _dir, float _pos, void* _vertices, uint32 _stride, void* _indices, uint32 _numIndices, bool _index32); - + /// /// Returns supported backend API renderers. /// @@ -2545,7 +2545,7 @@ public static class bgfx /// [LinkName("bgfx_get_supported_renderers")] public static extern uint8 get_supported_renderers(uint8 _max, RendererType* _enum); - + /// /// Returns name of renderer. /// @@ -2554,7 +2554,7 @@ public static class bgfx /// [LinkName("bgfx_get_renderer_name")] public static extern char8* get_renderer_name(RendererType _type); - + /// /// Fill bgfx::Init struct with default values, before using it to initialize the library. /// @@ -2563,7 +2563,7 @@ public static class bgfx /// [LinkName("bgfx_init_ctor")] public static extern void init_ctor(Init* _init); - + /// /// Initialize the bgfx library. /// @@ -2572,14 +2572,14 @@ public static class bgfx /// [LinkName("bgfx_init")] public static extern bool init(Init* _init); - + /// /// Shutdown bgfx library. /// /// [LinkName("bgfx_shutdown")] public static extern void shutdown(); - + /// /// Reset graphic settings and back-buffer size. /// @attention This call doesn’t change the window size, it just resizes @@ -2593,7 +2593,7 @@ public static class bgfx /// [LinkName("bgfx_reset")] public static extern void reset(uint32 _width, uint32 _height, uint32 _flags, TextureFormat _format); - + /// /// Advance to next frame. When using multithreaded renderer, this call /// just swaps internal buffers, kicks render thread, and returns. In @@ -2604,7 +2604,7 @@ public static class bgfx /// [LinkName("bgfx_frame")] public static extern uint32 frame(bool _capture); - + /// /// Returns current renderer backend API type. /// @remarks @@ -2613,7 +2613,7 @@ public static class bgfx /// [LinkName("bgfx_get_renderer_type")] public static extern RendererType get_renderer_type(); - + /// /// Returns renderer capabilities. /// @remarks @@ -2622,7 +2622,7 @@ public static class bgfx /// [LinkName("bgfx_get_caps")] public static extern Caps* get_caps(); - + /// /// Returns performance counters. /// @attention Pointer returned is valid until `bgfx::frame` is called. @@ -2630,7 +2630,7 @@ public static class bgfx /// [LinkName("bgfx_get_stats")] public static extern Stats* get_stats(); - + /// /// Allocate buffer to pass to bgfx calls. Data will be freed inside bgfx. /// @@ -2639,7 +2639,7 @@ public static class bgfx /// [LinkName("bgfx_alloc")] public static extern Memory* alloc(uint32 _size); - + /// /// Allocate buffer and copy data into it. Data will be freed inside bgfx. /// @@ -2649,7 +2649,7 @@ public static class bgfx /// [LinkName("bgfx_copy")] public static extern Memory* copy(void* _data, uint32 _size); - + /// /// Make reference to data to pass to bgfx. Unlike `bgfx::alloc`, this call /// doesn't allocate memory for data. It just copies the _data pointer. You @@ -2665,7 +2665,7 @@ public static class bgfx /// [LinkName("bgfx_make_ref")] public static extern Memory* make_ref(void* _data, uint32 _size); - + /// /// Make reference to data to pass to bgfx. Unlike `bgfx::alloc`, this call /// doesn't allocate memory for data. It just copies the _data pointer. You @@ -2683,7 +2683,7 @@ public static class bgfx /// [LinkName("bgfx_make_ref_release")] public static extern Memory* make_ref_release(void* _data, uint32 _size, void* _releaseFn, void* _userData); - + /// /// Set debug flags. /// @@ -2692,7 +2692,7 @@ public static class bgfx /// [LinkName("bgfx_set_debug")] public static extern void set_debug(uint32 _debug); - + /// /// Clear internal debug text buffer. /// @@ -2702,7 +2702,7 @@ public static class bgfx /// [LinkName("bgfx_dbg_text_clear")] public static extern void dbg_text_clear(uint8 _attr, bool _small); - + /// /// Print formatted data to internal debug text character-buffer (VGA-compatible text mode). /// @@ -2714,7 +2714,7 @@ public static class bgfx /// [LinkName("bgfx_dbg_text_printf")] public static extern void dbg_text_printf(uint16 _x, uint16 _y, uint8 _attr, char8* _format, ... ); - + /// /// Print formatted data from variable argument list to internal debug text character-buffer (VGA-compatible text mode). /// @@ -2727,7 +2727,7 @@ public static class bgfx /// [LinkName("bgfx_dbg_text_vprintf")] public static extern void dbg_text_vprintf(uint16 _x, uint16 _y, uint8 _attr, char8* _format, void* _argList); - + /// /// Draw image into internal debug text buffer. /// @@ -2741,7 +2741,7 @@ public static class bgfx /// [LinkName("bgfx_dbg_text_image")] public static extern void dbg_text_image(uint16 _x, uint16 _y, uint16 _width, uint16 _height, void* _data, uint16 _pitch); - + /// /// Create static index buffer. /// @@ -2751,7 +2751,7 @@ public static class bgfx /// [LinkName("bgfx_create_index_buffer")] public static extern IndexBufferHandle create_index_buffer(Memory* _mem, uint16 _flags); - + /// /// Set static index buffer debug name. /// @@ -2762,7 +2762,7 @@ public static class bgfx /// [LinkName("bgfx_set_index_buffer_name")] public static extern void set_index_buffer_name(IndexBufferHandle _handle, char8* _name, int _len); - + /// /// Destroy static index buffer. /// @@ -2771,7 +2771,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_index_buffer")] public static extern void destroy_index_buffer(IndexBufferHandle _handle); - + /// /// Create vertex layout. /// @@ -2780,7 +2780,7 @@ public static class bgfx /// [LinkName("bgfx_create_vertex_layout")] public static extern VertexLayoutHandle create_vertex_layout(VertexLayout* _layout); - + /// /// Destroy vertex layout. /// @@ -2789,7 +2789,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_vertex_layout")] public static extern void destroy_vertex_layout(VertexLayoutHandle _layoutHandle); - + /// /// Create static vertex buffer. /// @@ -2800,7 +2800,7 @@ public static class bgfx /// [LinkName("bgfx_create_vertex_buffer")] public static extern VertexBufferHandle create_vertex_buffer(Memory* _mem, VertexLayout* _layout, uint16 _flags); - + /// /// Set static vertex buffer debug name. /// @@ -2811,7 +2811,7 @@ public static class bgfx /// [LinkName("bgfx_set_vertex_buffer_name")] public static extern void set_vertex_buffer_name(VertexBufferHandle _handle, char8* _name, int _len); - + /// /// Destroy static vertex buffer. /// @@ -2820,7 +2820,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_vertex_buffer")] public static extern void destroy_vertex_buffer(VertexBufferHandle _handle); - + /// /// Create empty dynamic index buffer. /// @@ -2830,7 +2830,7 @@ public static class bgfx /// [LinkName("bgfx_create_dynamic_index_buffer")] public static extern DynamicIndexBufferHandle create_dynamic_index_buffer(uint32 _num, uint16 _flags); - + /// /// Create a dynamic index buffer and initialize it. /// @@ -2840,7 +2840,7 @@ public static class bgfx /// [LinkName("bgfx_create_dynamic_index_buffer_mem")] public static extern DynamicIndexBufferHandle create_dynamic_index_buffer_mem(Memory* _mem, uint16 _flags); - + /// /// Update dynamic index buffer. /// @@ -2851,7 +2851,7 @@ public static class bgfx /// [LinkName("bgfx_update_dynamic_index_buffer")] public static extern void update_dynamic_index_buffer(DynamicIndexBufferHandle _handle, uint32 _startIndex, Memory* _mem); - + /// /// Destroy dynamic index buffer. /// @@ -2860,7 +2860,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_dynamic_index_buffer")] public static extern void destroy_dynamic_index_buffer(DynamicIndexBufferHandle _handle); - + /// /// Create empty dynamic vertex buffer. /// @@ -2871,7 +2871,7 @@ public static class bgfx /// [LinkName("bgfx_create_dynamic_vertex_buffer")] public static extern DynamicVertexBufferHandle create_dynamic_vertex_buffer(uint32 _num, VertexLayout* _layout, uint16 _flags); - + /// /// Create dynamic vertex buffer and initialize it. /// @@ -2882,7 +2882,7 @@ public static class bgfx /// [LinkName("bgfx_create_dynamic_vertex_buffer_mem")] public static extern DynamicVertexBufferHandle create_dynamic_vertex_buffer_mem(Memory* _mem, VertexLayout* _layout, uint16 _flags); - + /// /// Update dynamic vertex buffer. /// @@ -2893,7 +2893,7 @@ public static class bgfx /// [LinkName("bgfx_update_dynamic_vertex_buffer")] public static extern void update_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle, uint32 _startVertex, Memory* _mem); - + /// /// Destroy dynamic vertex buffer. /// @@ -2902,7 +2902,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_dynamic_vertex_buffer")] public static extern void destroy_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle); - + /// /// Returns number of requested or maximum available indices. /// @@ -2912,7 +2912,7 @@ public static class bgfx /// [LinkName("bgfx_get_avail_transient_index_buffer")] public static extern uint32 get_avail_transient_index_buffer(uint32 _num, bool _index32); - + /// /// Returns number of requested or maximum available vertices. /// @@ -2922,7 +2922,7 @@ public static class bgfx /// [LinkName("bgfx_get_avail_transient_vertex_buffer")] public static extern uint32 get_avail_transient_vertex_buffer(uint32 _num, VertexLayout* _layout); - + /// /// Returns number of requested or maximum available instance buffer slots. /// @@ -2932,7 +2932,7 @@ public static class bgfx /// [LinkName("bgfx_get_avail_instance_data_buffer")] public static extern uint32 get_avail_instance_data_buffer(uint32 _num, uint16 _stride); - + /// /// Allocate transient index buffer. /// @@ -2943,7 +2943,7 @@ public static class bgfx /// [LinkName("bgfx_alloc_transient_index_buffer")] public static extern void alloc_transient_index_buffer(TransientIndexBuffer* _tib, uint32 _num, bool _index32); - + /// /// Allocate transient vertex buffer. /// @@ -2954,7 +2954,7 @@ public static class bgfx /// [LinkName("bgfx_alloc_transient_vertex_buffer")] public static extern void alloc_transient_vertex_buffer(TransientVertexBuffer* _tvb, uint32 _num, VertexLayout* _layout); - + /// /// Check for required space and allocate transient vertex and index /// buffers. If both space requirements are satisfied function returns @@ -2970,7 +2970,7 @@ public static class bgfx /// [LinkName("bgfx_alloc_transient_buffers")] public static extern bool alloc_transient_buffers(TransientVertexBuffer* _tvb, VertexLayout* _layout, uint32 _numVertices, TransientIndexBuffer* _tib, uint32 _numIndices, bool _index32); - + /// /// Allocate instance data buffer. /// @@ -2981,7 +2981,7 @@ public static class bgfx /// [LinkName("bgfx_alloc_instance_data_buffer")] public static extern void alloc_instance_data_buffer(InstanceDataBuffer* _idb, uint32 _num, uint16 _stride); - + /// /// Create draw indirect buffer. /// @@ -2990,7 +2990,7 @@ public static class bgfx /// [LinkName("bgfx_create_indirect_buffer")] public static extern IndirectBufferHandle create_indirect_buffer(uint32 _num); - + /// /// Destroy draw indirect buffer. /// @@ -2999,7 +2999,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_indirect_buffer")] public static extern void destroy_indirect_buffer(IndirectBufferHandle _handle); - + /// /// Create shader from memory buffer. /// @remarks @@ -3010,7 +3010,7 @@ public static class bgfx /// [LinkName("bgfx_create_shader")] public static extern ShaderHandle create_shader(Memory* _mem); - + /// /// Returns the number of uniforms and uniform handles used inside a shader. /// @remarks @@ -3023,7 +3023,7 @@ public static class bgfx /// [LinkName("bgfx_get_shader_uniforms")] public static extern uint16 get_shader_uniforms(ShaderHandle _handle, UniformHandle* _uniforms, uint16 _max); - + /// /// Set shader debug name. /// @@ -3034,7 +3034,7 @@ public static class bgfx /// [LinkName("bgfx_set_shader_name")] public static extern void set_shader_name(ShaderHandle _handle, char8* _name, int _len); - + /// /// Destroy shader. /// @remark Once a shader program is created with _handle, @@ -3045,7 +3045,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_shader")] public static extern void destroy_shader(ShaderHandle _handle); - + /// /// Create program with vertex and fragment shaders. /// @@ -3056,7 +3056,7 @@ public static class bgfx /// [LinkName("bgfx_create_program")] public static extern ProgramHandle create_program(ShaderHandle _vsh, ShaderHandle _fsh, bool _destroyShaders); - + /// /// Create program with compute shader. /// @@ -3066,7 +3066,7 @@ public static class bgfx /// [LinkName("bgfx_create_compute_program")] public static extern ProgramHandle create_compute_program(ShaderHandle _csh, bool _destroyShaders); - + /// /// Destroy program. /// @@ -3075,7 +3075,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_program")] public static extern void destroy_program(ProgramHandle _handle); - + /// /// Validate texture parameters. /// @@ -3088,7 +3088,7 @@ public static class bgfx /// [LinkName("bgfx_is_texture_valid")] public static extern bool is_texture_valid(uint16 _depth, bool _cubeMap, uint16 _numLayers, TextureFormat _format, uint64 _flags); - + /// /// Validate frame buffer parameters. /// @@ -3098,7 +3098,7 @@ public static class bgfx /// [LinkName("bgfx_is_frame_buffer_valid")] public static extern bool is_frame_buffer_valid(uint8 _num, Attachment* _attachment); - + /// /// Calculate amount of memory required for texture. /// @@ -3114,7 +3114,7 @@ public static class bgfx /// [LinkName("bgfx_calc_texture_size")] public static extern void calc_texture_size(TextureInfo* _info, uint16 _width, uint16 _height, uint16 _depth, bool _cubeMap, bool _hasMips, uint16 _numLayers, TextureFormat _format); - + /// /// Create texture from memory buffer. /// @@ -3126,7 +3126,7 @@ public static class bgfx /// [LinkName("bgfx_create_texture")] public static extern TextureHandle create_texture(Memory* _mem, uint64 _flags, uint8 _skip, TextureInfo* _info); - + /// /// Create 2D texture. /// @@ -3141,7 +3141,7 @@ public static class bgfx /// [LinkName("bgfx_create_texture_2d")] public static extern TextureHandle create_texture_2d(uint16 _width, uint16 _height, bool _hasMips, uint16 _numLayers, TextureFormat _format, uint64 _flags, Memory* _mem); - + /// /// Create texture with size based on back-buffer ratio. Texture will maintain ratio /// if back buffer resolution changes. @@ -3155,7 +3155,7 @@ public static class bgfx /// [LinkName("bgfx_create_texture_2d_scaled")] public static extern TextureHandle create_texture_2d_scaled(BackbufferRatio _ratio, bool _hasMips, uint16 _numLayers, TextureFormat _format, uint64 _flags); - + /// /// Create 3D texture. /// @@ -3170,7 +3170,7 @@ public static class bgfx /// [LinkName("bgfx_create_texture_3d")] public static extern TextureHandle create_texture_3d(uint16 _width, uint16 _height, uint16 _depth, bool _hasMips, TextureFormat _format, uint64 _flags, Memory* _mem); - + /// /// Create Cube texture. /// @@ -3184,7 +3184,7 @@ public static class bgfx /// [LinkName("bgfx_create_texture_cube")] public static extern TextureHandle create_texture_cube(uint16 _size, bool _hasMips, uint16 _numLayers, TextureFormat _format, uint64 _flags, Memory* _mem); - + /// /// Update 2D texture. /// @attention It's valid to update only mutable texture. See `bgfx::createTexture2D` for more info. @@ -3202,7 +3202,7 @@ public static class bgfx /// [LinkName("bgfx_update_texture_2d")] public static extern void update_texture_2d(TextureHandle _handle, uint16 _layer, uint8 _mip, uint16 _x, uint16 _y, uint16 _width, uint16 _height, Memory* _mem, uint16 _pitch); - + /// /// Update 3D texture. /// @attention It's valid to update only mutable texture. See `bgfx::createTexture3D` for more info. @@ -3220,7 +3220,7 @@ public static class bgfx /// [LinkName("bgfx_update_texture_3d")] public static extern void update_texture_3d(TextureHandle _handle, uint8 _mip, uint16 _x, uint16 _y, uint16 _z, uint16 _width, uint16 _height, uint16 _depth, Memory* _mem); - + /// /// Update Cube texture. /// @attention It's valid to update only mutable texture. See `bgfx::createTextureCube` for more info. @@ -3239,7 +3239,7 @@ public static class bgfx /// [LinkName("bgfx_update_texture_cube")] public static extern void update_texture_cube(TextureHandle _handle, uint16 _layer, uint8 _side, uint8 _mip, uint16 _x, uint16 _y, uint16 _width, uint16 _height, Memory* _mem, uint16 _pitch); - + /// /// Read back texture content. /// @attention Texture must be created with `BGFX_TEXTURE_READ_BACK` flag. @@ -3252,7 +3252,7 @@ public static class bgfx /// [LinkName("bgfx_read_texture")] public static extern uint32 read_texture(TextureHandle _handle, void* _data, uint8 _mip); - + /// /// Set texture debug name. /// @@ -3263,7 +3263,7 @@ public static class bgfx /// [LinkName("bgfx_set_texture_name")] public static extern void set_texture_name(TextureHandle _handle, char8* _name, int _len); - + /// /// Returns texture direct access pointer. /// @attention Availability depends on: `BGFX_CAPS_TEXTURE_DIRECT_ACCESS`. This feature @@ -3274,7 +3274,7 @@ public static class bgfx /// [LinkName("bgfx_get_direct_access_ptr")] public static extern void* get_direct_access_ptr(TextureHandle _handle); - + /// /// Destroy texture. /// @@ -3283,7 +3283,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_texture")] public static extern void destroy_texture(TextureHandle _handle); - + /// /// Create frame buffer (simple). /// @@ -3295,7 +3295,7 @@ public static class bgfx /// [LinkName("bgfx_create_frame_buffer")] public static extern FrameBufferHandle create_frame_buffer(uint16 _width, uint16 _height, TextureFormat _format, uint64 _textureFlags); - + /// /// Create frame buffer with size based on back-buffer ratio. Frame buffer will maintain ratio /// if back buffer resolution changes. @@ -3307,7 +3307,7 @@ public static class bgfx /// [LinkName("bgfx_create_frame_buffer_scaled")] public static extern FrameBufferHandle create_frame_buffer_scaled(BackbufferRatio _ratio, TextureFormat _format, uint64 _textureFlags); - + /// /// Create MRT frame buffer from texture handles (simple). /// @@ -3318,7 +3318,7 @@ public static class bgfx /// [LinkName("bgfx_create_frame_buffer_from_handles")] public static extern FrameBufferHandle create_frame_buffer_from_handles(uint8 _num, TextureHandle* _handles, bool _destroyTexture); - + /// /// Create MRT frame buffer from texture handles with specific layer and /// mip level. @@ -3330,7 +3330,7 @@ public static class bgfx /// [LinkName("bgfx_create_frame_buffer_from_attachment")] public static extern FrameBufferHandle create_frame_buffer_from_attachment(uint8 _num, Attachment* _attachment, bool _destroyTexture); - + /// /// Create frame buffer for multiple window rendering. /// @remarks @@ -3346,7 +3346,7 @@ public static class bgfx /// [LinkName("bgfx_create_frame_buffer_from_nwh")] public static extern FrameBufferHandle create_frame_buffer_from_nwh(void* _nwh, uint16 _width, uint16 _height, TextureFormat _format, TextureFormat _depthFormat); - + /// /// Set frame buffer debug name. /// @@ -3357,7 +3357,7 @@ public static class bgfx /// [LinkName("bgfx_set_frame_buffer_name")] public static extern void set_frame_buffer_name(FrameBufferHandle _handle, char8* _name, int _len); - + /// /// Obtain texture handle of frame buffer attachment. /// @@ -3366,7 +3366,7 @@ public static class bgfx /// [LinkName("bgfx_get_texture")] public static extern TextureHandle get_texture(FrameBufferHandle _handle, uint8 _attachment); - + /// /// Destroy frame buffer. /// @@ -3375,7 +3375,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_frame_buffer")] public static extern void destroy_frame_buffer(FrameBufferHandle _handle); - + /// /// Create shader uniform parameter. /// @remarks @@ -3408,7 +3408,7 @@ public static class bgfx /// [LinkName("bgfx_create_uniform")] public static extern UniformHandle create_uniform(char8* _name, UniformType _type, uint16 _num); - + /// /// Retrieve uniform info. /// @@ -3418,7 +3418,7 @@ public static class bgfx /// [LinkName("bgfx_get_uniform_info")] public static extern void get_uniform_info(UniformHandle _handle, UniformInfo* _info); - + /// /// Destroy shader uniform parameter. /// @@ -3427,14 +3427,14 @@ public static class bgfx /// [LinkName("bgfx_destroy_uniform")] public static extern void destroy_uniform(UniformHandle _handle); - + /// /// Create occlusion query. /// /// [LinkName("bgfx_create_occlusion_query")] public static extern OcclusionQueryHandle create_occlusion_query(); - + /// /// Retrieve occlusion query result from previous frame. /// @@ -3444,7 +3444,7 @@ public static class bgfx /// [LinkName("bgfx_get_result")] public static extern OcclusionQueryResult get_result(OcclusionQueryHandle _handle, int* _result); - + /// /// Destroy occlusion query. /// @@ -3453,7 +3453,7 @@ public static class bgfx /// [LinkName("bgfx_destroy_occlusion_query")] public static extern void destroy_occlusion_query(OcclusionQueryHandle _handle); - + /// /// Set palette color value. /// @@ -3463,7 +3463,7 @@ public static class bgfx /// [LinkName("bgfx_set_palette_color")] public static extern void set_palette_color(uint8 _index, float _rgba); - + /// /// Set palette color value. /// @@ -3476,7 +3476,7 @@ public static class bgfx /// [LinkName("bgfx_set_palette_color_rgba32f")] public static extern void set_palette_color_rgba32f(uint8 _index, float _r, float _g, float _b, float _a); - + /// /// Set palette color value. /// @@ -3486,7 +3486,7 @@ public static class bgfx /// [LinkName("bgfx_set_palette_color_rgba8")] public static extern void set_palette_color_rgba8(uint8 _index, uint32 _rgba); - + /// /// Set view name. /// @remarks @@ -3504,7 +3504,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_name")] public static extern void set_view_name(ViewId _id, char8* _name, int _len); - + /// /// Set view rectangle. Draw primitive outside view will be clipped. /// @@ -3517,7 +3517,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_rect")] public static extern void set_view_rect(ViewId _id, uint16 _x, uint16 _y, uint16 _width, uint16 _height); - + /// /// Set view rectangle. Draw primitive outside view will be clipped. /// @@ -3529,7 +3529,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_rect_ratio")] public static extern void set_view_rect_ratio(ViewId _id, uint16 _x, uint16 _y, BackbufferRatio _ratio); - + /// /// Set view scissor. Draw primitive outside view will be clipped. When /// _x, _y, _width and _height are set to 0, scissor will be disabled. @@ -3543,7 +3543,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_scissor")] public static extern void set_view_scissor(ViewId _id, uint16 _x, uint16 _y, uint16 _width, uint16 _height); - + /// /// Set view clear flags. /// @@ -3556,7 +3556,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_clear")] public static extern void set_view_clear(ViewId _id, uint16 _flags, uint32 _rgba, float _depth, uint8 _stencil); - + /// /// Set view clear flags with different clear color for each /// frame buffer texture. `bgfx::setPaletteColor` must be used to set up a @@ -3578,7 +3578,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_clear_mrt")] public static extern void set_view_clear_mrt(ViewId _id, uint16 _flags, float _depth, uint8 _stencil, uint8 _c0, uint8 _c1, uint8 _c2, uint8 _c3, uint8 _c4, uint8 _c5, uint8 _c6, uint8 _c7); - + /// /// Set view sorting mode. /// @remarks @@ -3590,7 +3590,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_mode")] public static extern void set_view_mode(ViewId _id, ViewMode _mode); - + /// /// Set view frame buffer. /// @remarks @@ -3602,7 +3602,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_frame_buffer")] public static extern void set_view_frame_buffer(ViewId _id, FrameBufferHandle _handle); - + /// /// Set view's view matrix and projection matrix, /// all draw primitives in this view will use these two matrices. @@ -3614,7 +3614,7 @@ public static class bgfx /// [LinkName("bgfx_set_view_transform")] public static extern void set_view_transform(ViewId _id, void* _view, void* _proj); - + /// /// Post submit view reordering. /// @@ -3625,14 +3625,14 @@ public static class bgfx /// [LinkName("bgfx_set_view_order")] public static extern void set_view_order(ViewId _id, uint16 _num, ViewId* _order); - + /// /// Reset all view settings to default. /// /// [LinkName("bgfx_reset_view")] public static extern void reset_view(ViewId _id); - + /// /// Begin submitting draw calls from thread. /// @@ -3641,7 +3641,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_begin")] public static extern Encoder* encoder_begin(bool _forThread); - + /// /// End submitting draw calls from thread. /// @@ -3650,7 +3650,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_end")] public static extern void encoder_end(Encoder* _encoder); - + /// /// Sets a debug marker. This allows you to group graphics calls together for easy browsing in /// graphics debugging tools. @@ -3661,7 +3661,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_marker")] public static extern void encoder_set_marker(Encoder* _this, char8* _name, int _len); - + /// /// Set render states for draw primitive. /// @remarks @@ -3681,7 +3681,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_state")] public static extern void encoder_set_state(Encoder* _this, uint64 _state, uint32 _rgba); - + /// /// Set condition for rendering. /// @@ -3691,7 +3691,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_condition")] public static extern void encoder_set_condition(Encoder* _this, OcclusionQueryHandle _handle, bool _visible); - + /// /// Set stencil test state. /// @@ -3701,7 +3701,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_stencil")] public static extern void encoder_set_stencil(Encoder* _this, uint32 _fstencil, uint32 _bstencil); - + /// /// Set scissor for draw primitive. /// @remark @@ -3715,7 +3715,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_scissor")] public static extern uint16 encoder_set_scissor(Encoder* _this, uint16 _x, uint16 _y, uint16 _width, uint16 _height); - + /// /// Set scissor from cache for draw primitive. /// @remark @@ -3726,7 +3726,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_scissor_cached")] public static extern void encoder_set_scissor_cached(Encoder* _this, uint16 _cache); - + /// /// Set model matrix for draw primitive. If it is not called, /// the model will be rendered with an identity model matrix. @@ -3737,7 +3737,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_transform")] public static extern uint32 encoder_set_transform(Encoder* _this, void* _mtx, uint16 _num); - + /// /// Set model matrix from matrix cache for draw primitive. /// @@ -3747,7 +3747,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_transform_cached")] public static extern void encoder_set_transform_cached(Encoder* _this, uint32 _cache, uint16 _num); - + /// /// Reserve matrices in internal matrix cache. /// @attention Pointer returned can be modified until `bgfx::frame` is called. @@ -3758,7 +3758,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_alloc_transform")] public static extern uint32 encoder_alloc_transform(Encoder* _this, Transform* _transform, uint16 _num); - + /// /// Set shader uniform parameter for draw primitive. /// @@ -3769,7 +3769,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_uniform")] public static extern void encoder_set_uniform(Encoder* _this, UniformHandle _handle, void* _value, uint16 _num); - + /// /// Set index buffer for draw primitive. /// @@ -3780,7 +3780,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_index_buffer")] public static extern void encoder_set_index_buffer(Encoder* _this, IndexBufferHandle _handle, uint32 _firstIndex, uint32 _numIndices); - + /// /// Set index buffer for draw primitive. /// @@ -3791,7 +3791,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_dynamic_index_buffer")] public static extern void encoder_set_dynamic_index_buffer(Encoder* _this, DynamicIndexBufferHandle _handle, uint32 _firstIndex, uint32 _numIndices); - + /// /// Set index buffer for draw primitive. /// @@ -3802,7 +3802,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_transient_index_buffer")] public static extern void encoder_set_transient_index_buffer(Encoder* _this, TransientIndexBuffer* _tib, uint32 _firstIndex, uint32 _numIndices); - + /// /// Set vertex buffer for draw primitive. /// @@ -3814,7 +3814,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_vertex_buffer")] public static extern void encoder_set_vertex_buffer(Encoder* _this, uint8 _stream, VertexBufferHandle _handle, uint32 _startVertex, uint32 _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -3827,7 +3827,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_vertex_buffer_with_layout")] public static extern void encoder_set_vertex_buffer_with_layout(Encoder* _this, uint8 _stream, VertexBufferHandle _handle, uint32 _startVertex, uint32 _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set vertex buffer for draw primitive. /// @@ -3839,10 +3839,10 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_dynamic_vertex_buffer")] public static extern void encoder_set_dynamic_vertex_buffer(Encoder* _this, uint8 _stream, DynamicVertexBufferHandle _handle, uint32 _startVertex, uint32 _numVertices); - + [LinkName("bgfx_encoder_set_dynamic_vertex_buffer_with_layout")] public static extern void encoder_set_dynamic_vertex_buffer_with_layout(Encoder* _this, uint8 _stream, DynamicVertexBufferHandle _handle, uint32 _startVertex, uint32 _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set vertex buffer for draw primitive. /// @@ -3854,7 +3854,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_transient_vertex_buffer")] public static extern void encoder_set_transient_vertex_buffer(Encoder* _this, uint8 _stream, TransientVertexBuffer* _tvb, uint32 _startVertex, uint32 _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -3867,7 +3867,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_transient_vertex_buffer_with_layout")] public static extern void encoder_set_transient_vertex_buffer_with_layout(Encoder* _this, uint8 _stream, TransientVertexBuffer* _tvb, uint32 _startVertex, uint32 _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set number of vertices for auto generated vertices use in conjunction /// with gl_VertexID. @@ -3878,7 +3878,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_vertex_count")] public static extern void encoder_set_vertex_count(Encoder* _this, uint32 _numVertices); - + /// /// Set instance data buffer for draw primitive. /// @@ -3889,7 +3889,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_instance_data_buffer")] public static extern void encoder_set_instance_data_buffer(Encoder* _this, InstanceDataBuffer* _idb, uint32 _start, uint32 _num); - + /// /// Set instance data buffer for draw primitive. /// @@ -3900,7 +3900,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_instance_data_from_vertex_buffer")] public static extern void encoder_set_instance_data_from_vertex_buffer(Encoder* _this, VertexBufferHandle _handle, uint32 _startVertex, uint32 _num); - + /// /// Set instance data buffer for draw primitive. /// @@ -3911,7 +3911,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_instance_data_from_dynamic_vertex_buffer")] public static extern void encoder_set_instance_data_from_dynamic_vertex_buffer(Encoder* _this, DynamicVertexBufferHandle _handle, uint32 _startVertex, uint32 _num); - + /// /// Set number of instances for auto generated instances use in conjunction /// with gl_InstanceID. @@ -3920,7 +3920,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_instance_count")] public static extern void encoder_set_instance_count(Encoder* _this, uint32 _numInstances); - + /// /// Set texture stage for draw primitive. /// @@ -3932,7 +3932,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_texture")] public static extern void encoder_set_texture(Encoder* _this, uint8 _stage, UniformHandle _sampler, TextureHandle _handle, uint32 _flags); - + /// /// Submit an empty primitive for rendering. Uniforms and draw state /// will be applied but no geometry will be submitted. Useful in cases @@ -3946,7 +3946,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_touch")] public static extern void encoder_touch(Encoder* _this, ViewId _id); - + /// /// Submit primitive for rendering. /// @@ -3958,7 +3958,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_submit")] public static extern void encoder_submit(Encoder* _this, ViewId _id, ProgramHandle _program, uint32 _depth, uint8 _flags); - + /// /// Submit primitive with occlusion query for rendering. /// @@ -3971,7 +3971,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_submit_occlusion_query")] public static extern void encoder_submit_occlusion_query(Encoder* _this, ViewId _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint32 _depth, uint8 _flags); - + /// /// Submit primitive for rendering with index and instance data info from /// indirect buffer. @@ -3988,7 +3988,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_submit_indirect")] public static extern void encoder_submit_indirect(Encoder* _this, ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32 _start, uint32 _num, uint32 _depth, uint8 _flags); - + /// /// Submit primitive for rendering with index and instance data info and /// draw count from indirect buffers. @@ -4007,7 +4007,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_submit_indirect_count")] public static extern void encoder_submit_indirect_count(Encoder* _this, ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32 _start, IndexBufferHandle _numHandle, uint32 _numIndex, uint32 _numMax, uint32 _depth, uint8 _flags); - + /// /// Set compute index buffer. /// @@ -4018,7 +4018,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_compute_index_buffer")] public static extern void encoder_set_compute_index_buffer(Encoder* _this, uint8 _stage, IndexBufferHandle _handle, Access _access); - + /// /// Set compute vertex buffer. /// @@ -4029,7 +4029,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_compute_vertex_buffer")] public static extern void encoder_set_compute_vertex_buffer(Encoder* _this, uint8 _stage, VertexBufferHandle _handle, Access _access); - + /// /// Set compute dynamic index buffer. /// @@ -4040,7 +4040,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_compute_dynamic_index_buffer")] public static extern void encoder_set_compute_dynamic_index_buffer(Encoder* _this, uint8 _stage, DynamicIndexBufferHandle _handle, Access _access); - + /// /// Set compute dynamic vertex buffer. /// @@ -4051,7 +4051,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_compute_dynamic_vertex_buffer")] public static extern void encoder_set_compute_dynamic_vertex_buffer(Encoder* _this, uint8 _stage, DynamicVertexBufferHandle _handle, Access _access); - + /// /// Set compute indirect buffer. /// @@ -4062,7 +4062,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_compute_indirect_buffer")] public static extern void encoder_set_compute_indirect_buffer(Encoder* _this, uint8 _stage, IndirectBufferHandle _handle, Access _access); - + /// /// Set compute image from texture. /// @@ -4075,7 +4075,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_set_image")] public static extern void encoder_set_image(Encoder* _this, uint8 _stage, TextureHandle _handle, uint8 _mip, Access _access, TextureFormat _format); - + /// /// Dispatch compute. /// @@ -4089,7 +4089,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_dispatch")] public static extern void encoder_dispatch(Encoder* _this, ViewId _id, ProgramHandle _program, uint32 _numX, uint32 _numY, uint32 _numZ, uint8 _flags); - + /// /// Dispatch compute indirect. /// @@ -4103,7 +4103,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_dispatch_indirect")] public static extern void encoder_dispatch_indirect(Encoder* _this, ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32 _start, uint32 _num, uint8 _flags); - + /// /// Discard previously set state for draw or compute call. /// @@ -4112,7 +4112,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_discard")] public static extern void encoder_discard(Encoder* _this, uint8 _flags); - + /// /// Blit 2D texture region between two 2D textures. /// @attention Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. @@ -4136,7 +4136,7 @@ public static class bgfx /// [LinkName("bgfx_encoder_blit")] public static extern void encoder_blit(Encoder* _this, ViewId _id, TextureHandle _dst, uint8 _dstMip, uint16 _dstX, uint16 _dstY, uint16 _dstZ, TextureHandle _src, uint8 _srcMip, uint16 _srcX, uint16 _srcY, uint16 _srcZ, uint16 _width, uint16 _height, uint16 _depth); - + /// /// Request screen shot of window back buffer. /// @remarks @@ -4149,7 +4149,7 @@ public static class bgfx /// [LinkName("bgfx_request_screen_shot")] public static extern void request_screen_shot(FrameBufferHandle _handle, char8* _filePath); - + /// /// Render frame. /// @attention `bgfx::renderFrame` is blocking call. It waits for @@ -4165,7 +4165,7 @@ public static class bgfx /// [LinkName("bgfx_render_frame")] public static extern RenderFrame render_frame(int _msecs); - + /// /// Set platform data. /// @warning Must be called before `bgfx::init`. @@ -4175,7 +4175,7 @@ public static class bgfx /// [LinkName("bgfx_set_platform_data")] public static extern void set_platform_data(PlatformData* _data); - + /// /// Get internal data for interop. /// @attention It's expected you understand some bgfx internals before you @@ -4185,7 +4185,7 @@ public static class bgfx /// [LinkName("bgfx_get_internal_data")] public static extern InternalData* get_internal_data(); - + /// /// Override internal texture with externally created texture. Previously /// created internal texture will released. @@ -4199,7 +4199,7 @@ public static class bgfx /// [LinkName("bgfx_override_internal_texture_ptr")] public static extern void* override_internal_texture_ptr(TextureHandle _handle, void* _ptr); - + /// /// Override internal texture by creating new texture. Previously created /// internal texture will released. @@ -4219,7 +4219,7 @@ public static class bgfx /// [LinkName("bgfx_override_internal_texture")] public static extern void* override_internal_texture(TextureHandle _handle, uint16 _width, uint16 _height, uint8 _numMips, TextureFormat _format, uint64 _flags); - + /// /// Sets a debug marker. This allows you to group graphics calls together for easy browsing in /// graphics debugging tools. @@ -4230,7 +4230,7 @@ public static class bgfx /// [LinkName("bgfx_set_marker")] public static extern void set_marker(char8* _name, int _len); - + /// /// Set render states for draw primitive. /// @remarks @@ -4250,7 +4250,7 @@ public static class bgfx /// [LinkName("bgfx_set_state")] public static extern void set_state(uint64 _state, uint32 _rgba); - + /// /// Set condition for rendering. /// @@ -4260,7 +4260,7 @@ public static class bgfx /// [LinkName("bgfx_set_condition")] public static extern void set_condition(OcclusionQueryHandle _handle, bool _visible); - + /// /// Set stencil test state. /// @@ -4270,7 +4270,7 @@ public static class bgfx /// [LinkName("bgfx_set_stencil")] public static extern void set_stencil(uint32 _fstencil, uint32 _bstencil); - + /// /// Set scissor for draw primitive. /// @remark @@ -4284,7 +4284,7 @@ public static class bgfx /// [LinkName("bgfx_set_scissor")] public static extern uint16 set_scissor(uint16 _x, uint16 _y, uint16 _width, uint16 _height); - + /// /// Set scissor from cache for draw primitive. /// @remark @@ -4295,7 +4295,7 @@ public static class bgfx /// [LinkName("bgfx_set_scissor_cached")] public static extern void set_scissor_cached(uint16 _cache); - + /// /// Set model matrix for draw primitive. If it is not called, /// the model will be rendered with an identity model matrix. @@ -4306,7 +4306,7 @@ public static class bgfx /// [LinkName("bgfx_set_transform")] public static extern uint32 set_transform(void* _mtx, uint16 _num); - + /// /// Set model matrix from matrix cache for draw primitive. /// @@ -4316,7 +4316,7 @@ public static class bgfx /// [LinkName("bgfx_set_transform_cached")] public static extern void set_transform_cached(uint32 _cache, uint16 _num); - + /// /// Reserve matrices in internal matrix cache. /// @attention Pointer returned can be modified until `bgfx::frame` is called. @@ -4327,7 +4327,7 @@ public static class bgfx /// [LinkName("bgfx_alloc_transform")] public static extern uint32 alloc_transform(Transform* _transform, uint16 _num); - + /// /// Set shader uniform parameter for draw primitive. /// @@ -4338,7 +4338,7 @@ public static class bgfx /// [LinkName("bgfx_set_uniform")] public static extern void set_uniform(UniformHandle _handle, void* _value, uint16 _num); - + /// /// Set index buffer for draw primitive. /// @@ -4349,7 +4349,7 @@ public static class bgfx /// [LinkName("bgfx_set_index_buffer")] public static extern void set_index_buffer(IndexBufferHandle _handle, uint32 _firstIndex, uint32 _numIndices); - + /// /// Set index buffer for draw primitive. /// @@ -4360,7 +4360,7 @@ public static class bgfx /// [LinkName("bgfx_set_dynamic_index_buffer")] public static extern void set_dynamic_index_buffer(DynamicIndexBufferHandle _handle, uint32 _firstIndex, uint32 _numIndices); - + /// /// Set index buffer for draw primitive. /// @@ -4371,7 +4371,7 @@ public static class bgfx /// [LinkName("bgfx_set_transient_index_buffer")] public static extern void set_transient_index_buffer(TransientIndexBuffer* _tib, uint32 _firstIndex, uint32 _numIndices); - + /// /// Set vertex buffer for draw primitive. /// @@ -4383,7 +4383,7 @@ public static class bgfx /// [LinkName("bgfx_set_vertex_buffer")] public static extern void set_vertex_buffer(uint8 _stream, VertexBufferHandle _handle, uint32 _startVertex, uint32 _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -4396,7 +4396,7 @@ public static class bgfx /// [LinkName("bgfx_set_vertex_buffer_with_layout")] public static extern void set_vertex_buffer_with_layout(uint8 _stream, VertexBufferHandle _handle, uint32 _startVertex, uint32 _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set vertex buffer for draw primitive. /// @@ -4408,7 +4408,7 @@ public static class bgfx /// [LinkName("bgfx_set_dynamic_vertex_buffer")] public static extern void set_dynamic_vertex_buffer(uint8 _stream, DynamicVertexBufferHandle _handle, uint32 _startVertex, uint32 _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -4421,7 +4421,7 @@ public static class bgfx /// [LinkName("bgfx_set_dynamic_vertex_buffer_with_layout")] public static extern void set_dynamic_vertex_buffer_with_layout(uint8 _stream, DynamicVertexBufferHandle _handle, uint32 _startVertex, uint32 _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set vertex buffer for draw primitive. /// @@ -4433,7 +4433,7 @@ public static class bgfx /// [LinkName("bgfx_set_transient_vertex_buffer")] public static extern void set_transient_vertex_buffer(uint8 _stream, TransientVertexBuffer* _tvb, uint32 _startVertex, uint32 _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -4446,7 +4446,7 @@ public static class bgfx /// [LinkName("bgfx_set_transient_vertex_buffer_with_layout")] public static extern void set_transient_vertex_buffer_with_layout(uint8 _stream, TransientVertexBuffer* _tvb, uint32 _startVertex, uint32 _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set number of vertices for auto generated vertices use in conjunction /// with gl_VertexID. @@ -4457,7 +4457,7 @@ public static class bgfx /// [LinkName("bgfx_set_vertex_count")] public static extern void set_vertex_count(uint32 _numVertices); - + /// /// Set instance data buffer for draw primitive. /// @@ -4468,7 +4468,7 @@ public static class bgfx /// [LinkName("bgfx_set_instance_data_buffer")] public static extern void set_instance_data_buffer(InstanceDataBuffer* _idb, uint32 _start, uint32 _num); - + /// /// Set instance data buffer for draw primitive. /// @@ -4479,7 +4479,7 @@ public static class bgfx /// [LinkName("bgfx_set_instance_data_from_vertex_buffer")] public static extern void set_instance_data_from_vertex_buffer(VertexBufferHandle _handle, uint32 _startVertex, uint32 _num); - + /// /// Set instance data buffer for draw primitive. /// @@ -4490,7 +4490,7 @@ public static class bgfx /// [LinkName("bgfx_set_instance_data_from_dynamic_vertex_buffer")] public static extern void set_instance_data_from_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle, uint32 _startVertex, uint32 _num); - + /// /// Set number of instances for auto generated instances use in conjunction /// with gl_InstanceID. @@ -4499,7 +4499,7 @@ public static class bgfx /// [LinkName("bgfx_set_instance_count")] public static extern void set_instance_count(uint32 _numInstances); - + /// /// Set texture stage for draw primitive. /// @@ -4511,7 +4511,7 @@ public static class bgfx /// [LinkName("bgfx_set_texture")] public static extern void set_texture(uint8 _stage, UniformHandle _sampler, TextureHandle _handle, uint32 _flags); - + /// /// Submit an empty primitive for rendering. Uniforms and draw state /// will be applied but no geometry will be submitted. @@ -4523,7 +4523,7 @@ public static class bgfx /// [LinkName("bgfx_touch")] public static extern void touch(ViewId _id); - + /// /// Submit primitive for rendering. /// @@ -4535,7 +4535,7 @@ public static class bgfx /// [LinkName("bgfx_submit")] public static extern void submit(ViewId _id, ProgramHandle _program, uint32 _depth, uint8 _flags); - + /// /// Submit primitive with occlusion query for rendering. /// @@ -4548,7 +4548,7 @@ public static class bgfx /// [LinkName("bgfx_submit_occlusion_query")] public static extern void submit_occlusion_query(ViewId _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint32 _depth, uint8 _flags); - + /// /// Submit primitive for rendering with index and instance data info from /// indirect buffer. @@ -4565,7 +4565,7 @@ public static class bgfx /// [LinkName("bgfx_submit_indirect")] public static extern void submit_indirect(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32 _start, uint32 _num, uint32 _depth, uint8 _flags); - + /// /// Submit primitive for rendering with index and instance data info and /// draw count from indirect buffers. @@ -4584,7 +4584,7 @@ public static class bgfx /// [LinkName("bgfx_submit_indirect_count")] public static extern void submit_indirect_count(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32 _start, IndexBufferHandle _numHandle, uint32 _numIndex, uint32 _numMax, uint32 _depth, uint8 _flags); - + /// /// Set compute index buffer. /// @@ -4595,7 +4595,7 @@ public static class bgfx /// [LinkName("bgfx_set_compute_index_buffer")] public static extern void set_compute_index_buffer(uint8 _stage, IndexBufferHandle _handle, Access _access); - + /// /// Set compute vertex buffer. /// @@ -4606,7 +4606,7 @@ public static class bgfx /// [LinkName("bgfx_set_compute_vertex_buffer")] public static extern void set_compute_vertex_buffer(uint8 _stage, VertexBufferHandle _handle, Access _access); - + /// /// Set compute dynamic index buffer. /// @@ -4617,7 +4617,7 @@ public static class bgfx /// [LinkName("bgfx_set_compute_dynamic_index_buffer")] public static extern void set_compute_dynamic_index_buffer(uint8 _stage, DynamicIndexBufferHandle _handle, Access _access); - + /// /// Set compute dynamic vertex buffer. /// @@ -4628,7 +4628,7 @@ public static class bgfx /// [LinkName("bgfx_set_compute_dynamic_vertex_buffer")] public static extern void set_compute_dynamic_vertex_buffer(uint8 _stage, DynamicVertexBufferHandle _handle, Access _access); - + /// /// Set compute indirect buffer. /// @@ -4639,7 +4639,7 @@ public static class bgfx /// [LinkName("bgfx_set_compute_indirect_buffer")] public static extern void set_compute_indirect_buffer(uint8 _stage, IndirectBufferHandle _handle, Access _access); - + /// /// Set compute image from texture. /// @@ -4652,7 +4652,7 @@ public static class bgfx /// [LinkName("bgfx_set_image")] public static extern void set_image(uint8 _stage, TextureHandle _handle, uint8 _mip, Access _access, TextureFormat _format); - + /// /// Dispatch compute. /// @@ -4666,7 +4666,7 @@ public static class bgfx /// [LinkName("bgfx_dispatch")] public static extern void dispatch(ViewId _id, ProgramHandle _program, uint32 _numX, uint32 _numY, uint32 _numZ, uint8 _flags); - + /// /// Dispatch compute indirect. /// @@ -4680,7 +4680,7 @@ public static class bgfx /// [LinkName("bgfx_dispatch_indirect")] public static extern void dispatch_indirect(ViewId _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint32 _start, uint32 _num, uint8 _flags); - + /// /// Discard previously set state for draw or compute call. /// @@ -4689,7 +4689,7 @@ public static class bgfx /// [LinkName("bgfx_discard")] public static extern void discard(uint8 _flags); - + /// /// Blit 2D texture region between two 2D textures. /// @attention Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. @@ -4713,7 +4713,7 @@ public static class bgfx /// [LinkName("bgfx_blit")] public static extern void blit(ViewId _id, TextureHandle _dst, uint8 _dstMip, uint16 _dstX, uint16 _dstY, uint16 _dstZ, TextureHandle _src, uint8 _srcMip, uint16 _srcX, uint16 _srcY, uint16 _srcZ, uint16 _width, uint16 _height, uint16 _depth); - + public static bgfx.StateFlags blend_function_separate(bgfx.StateFlags _srcRGB, bgfx.StateFlags _dstRGB, bgfx.StateFlags _srcA, bgfx.StateFlags _dstA) { diff --git a/bindings/cs/bgfx.cs b/bindings/cs/bgfx.cs index 499439e6e12..0ab6a3f50b1 100644 --- a/bindings/cs/bgfx.cs +++ b/bindings/cs/bgfx.cs @@ -23,178 +23,178 @@ public enum StateFlags : ulong /// Enable R write. /// WriteR = 0x0000000000000001, - + /// /// Enable G write. /// WriteG = 0x0000000000000002, - + /// /// Enable B write. /// WriteB = 0x0000000000000004, - + /// /// Enable alpha write. /// WriteA = 0x0000000000000008, - + /// /// Enable depth write. /// WriteZ = 0x0000004000000000, - + /// /// Enable RGB write. /// WriteRgb = 0x0000000000000007, - + /// /// Write all channels mask. /// WriteMask = 0x000000400000000f, - + /// /// Enable depth test, less. /// DepthTestLess = 0x0000000000000010, - + /// /// Enable depth test, less or equal. /// DepthTestLequal = 0x0000000000000020, - + /// /// Enable depth test, equal. /// DepthTestEqual = 0x0000000000000030, - + /// /// Enable depth test, greater or equal. /// DepthTestGequal = 0x0000000000000040, - + /// /// Enable depth test, greater. /// DepthTestGreater = 0x0000000000000050, - + /// /// Enable depth test, not equal. /// DepthTestNotequal = 0x0000000000000060, - + /// /// Enable depth test, never. /// DepthTestNever = 0x0000000000000070, - + /// /// Enable depth test, always. /// DepthTestAlways = 0x0000000000000080, DepthTestShift = 4, DepthTestMask = 0x00000000000000f0, - + /// /// 0, 0, 0, 0 /// BlendZero = 0x0000000000001000, - + /// /// 1, 1, 1, 1 /// BlendOne = 0x0000000000002000, - + /// /// Rs, Gs, Bs, As /// BlendSrcColor = 0x0000000000003000, - + /// /// 1-Rs, 1-Gs, 1-Bs, 1-As /// BlendInvSrcColor = 0x0000000000004000, - + /// /// As, As, As, As /// BlendSrcAlpha = 0x0000000000005000, - + /// /// 1-As, 1-As, 1-As, 1-As /// BlendInvSrcAlpha = 0x0000000000006000, - + /// /// Ad, Ad, Ad, Ad /// BlendDstAlpha = 0x0000000000007000, - + /// /// 1-Ad, 1-Ad, 1-Ad ,1-Ad /// BlendInvDstAlpha = 0x0000000000008000, - + /// /// Rd, Gd, Bd, Ad /// BlendDstColor = 0x0000000000009000, - + /// /// 1-Rd, 1-Gd, 1-Bd, 1-Ad /// BlendInvDstColor = 0x000000000000a000, - + /// /// f, f, f, 1; f = min(As, 1-Ad) /// BlendSrcAlphaSat = 0x000000000000b000, - + /// /// Blend factor /// BlendFactor = 0x000000000000c000, - + /// /// 1-Blend factor /// BlendInvFactor = 0x000000000000d000, BlendShift = 12, BlendMask = 0x000000000ffff000, - + /// /// Blend add: src + dst. /// BlendEquationAdd = 0x0000000000000000, - + /// /// Blend subtract: src - dst. /// BlendEquationSub = 0x0000000010000000, - + /// /// Blend reverse subtract: dst - src. /// BlendEquationRevsub = 0x0000000020000000, - + /// /// Blend min: min(src, dst). /// BlendEquationMin = 0x0000000030000000, - + /// /// Blend max: max(src, dst). /// BlendEquationMax = 0x0000000040000000, BlendEquationShift = 28, BlendEquationMask = 0x00000003f0000000, - + /// /// Cull clockwise triangles. /// CullCw = 0x0000001000000000, - + /// /// Cull counter-clockwise triangles. /// @@ -203,22 +203,22 @@ public enum StateFlags : ulong CullMask = 0x0000003000000000, AlphaRefShift = 40, AlphaRefMask = 0x0000ff0000000000, - + /// /// Tristrip. /// PtTristrip = 0x0001000000000000, - + /// /// Lines. /// PtLines = 0x0002000000000000, - + /// /// Line strip. /// PtLinestrip = 0x0003000000000000, - + /// /// Points. /// @@ -227,42 +227,42 @@ public enum StateFlags : ulong PtMask = 0x0007000000000000, PointSizeShift = 52, PointSizeMask = 0x00f0000000000000, - + /// /// Enable MSAA rasterization. /// Msaa = 0x0100000000000000, - + /// /// Enable line AA rasterization. /// Lineaa = 0x0200000000000000, - + /// /// Enable conservative rasterization. /// ConservativeRaster = 0x0400000000000000, - + /// /// No state. /// None = 0x0000000000000000, - + /// /// Front counter-clockwise (default is clockwise). /// FrontCcw = 0x0000008000000000, - + /// /// Enable blend independent. /// BlendIndependent = 0x0000000400000000, - + /// /// Enable alpha to coverage. /// BlendAlphaToCoverage = 0x0000000800000000, - + /// /// Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise /// culling and MSAA (when writing into MSAA frame buffer, otherwise this flag is ignored). @@ -272,7 +272,7 @@ public enum StateFlags : ulong ReservedShift = 61, ReservedMask = 0xe000000000000000, } - + [Flags] public enum StencilFlags : uint { @@ -283,168 +283,168 @@ public enum StencilFlags : uint None = 0x00000000, Mask = 0xffffffff, Default = 0x00000000, - + /// /// Enable stencil test, less. /// TestLess = 0x00010000, - + /// /// Enable stencil test, less or equal. /// TestLequal = 0x00020000, - + /// /// Enable stencil test, equal. /// TestEqual = 0x00030000, - + /// /// Enable stencil test, greater or equal. /// TestGequal = 0x00040000, - + /// /// Enable stencil test, greater. /// TestGreater = 0x00050000, - + /// /// Enable stencil test, not equal. /// TestNotequal = 0x00060000, - + /// /// Enable stencil test, never. /// TestNever = 0x00070000, - + /// /// Enable stencil test, always. /// TestAlways = 0x00080000, TestShift = 16, TestMask = 0x000f0000, - + /// /// Zero. /// OpFailSZero = 0x00000000, - + /// /// Keep. /// OpFailSKeep = 0x00100000, - + /// /// Replace. /// OpFailSReplace = 0x00200000, - + /// /// Increment and wrap. /// OpFailSIncr = 0x00300000, - + /// /// Increment and clamp. /// OpFailSIncrsat = 0x00400000, - + /// /// Decrement and wrap. /// OpFailSDecr = 0x00500000, - + /// /// Decrement and clamp. /// OpFailSDecrsat = 0x00600000, - + /// /// Invert. /// OpFailSInvert = 0x00700000, OpFailSShift = 20, OpFailSMask = 0x00f00000, - + /// /// Zero. /// OpFailZZero = 0x00000000, - + /// /// Keep. /// OpFailZKeep = 0x01000000, - + /// /// Replace. /// OpFailZReplace = 0x02000000, - + /// /// Increment and wrap. /// OpFailZIncr = 0x03000000, - + /// /// Increment and clamp. /// OpFailZIncrsat = 0x04000000, - + /// /// Decrement and wrap. /// OpFailZDecr = 0x05000000, - + /// /// Decrement and clamp. /// OpFailZDecrsat = 0x06000000, - + /// /// Invert. /// OpFailZInvert = 0x07000000, OpFailZShift = 24, OpFailZMask = 0x0f000000, - + /// /// Zero. /// OpPassZZero = 0x00000000, - + /// /// Keep. /// OpPassZKeep = 0x10000000, - + /// /// Replace. /// OpPassZReplace = 0x20000000, - + /// /// Increment and wrap. /// OpPassZIncr = 0x30000000, - + /// /// Increment and clamp. /// OpPassZIncrsat = 0x40000000, - + /// /// Decrement and wrap. /// OpPassZDecr = 0x50000000, - + /// /// Decrement and clamp. /// OpPassZDecrsat = 0x60000000, - + /// /// Invert. /// @@ -452,7 +452,7 @@ public enum StencilFlags : uint OpPassZShift = 28, OpPassZMask = 0xf0000000, } - + [Flags] public enum ClearFlags : ushort { @@ -460,67 +460,67 @@ public enum ClearFlags : ushort /// No clear flags. /// None = 0x0000, - + /// /// Clear color. /// Color = 0x0001, - + /// /// Clear depth. /// Depth = 0x0002, - + /// /// Clear stencil. /// Stencil = 0x0004, - + /// /// Discard frame buffer attachment 0. /// DiscardColor0 = 0x0008, - + /// /// Discard frame buffer attachment 1. /// DiscardColor1 = 0x0010, - + /// /// Discard frame buffer attachment 2. /// DiscardColor2 = 0x0020, - + /// /// Discard frame buffer attachment 3. /// DiscardColor3 = 0x0040, - + /// /// Discard frame buffer attachment 4. /// DiscardColor4 = 0x0080, - + /// /// Discard frame buffer attachment 5. /// DiscardColor5 = 0x0100, - + /// /// Discard frame buffer attachment 6. /// DiscardColor6 = 0x0200, - + /// /// Discard frame buffer attachment 7. /// DiscardColor7 = 0x0400, - + /// /// Discard frame buffer depth attachment. /// DiscardDepth = 0x0800, - + /// /// Discard frame buffer stencil attachment. /// @@ -528,7 +528,7 @@ public enum ClearFlags : ushort DiscardColorMask = 0x07f8, DiscardMask = 0x1ff8, } - + [Flags] public enum DiscardFlags : uint { @@ -536,43 +536,43 @@ public enum DiscardFlags : uint /// Preserve everything. /// None = 0x00000000, - + /// /// Discard texture sampler and buffer bindings. /// Bindings = 0x00000001, - + /// /// Discard index buffer. /// IndexBuffer = 0x00000002, - + /// /// Discard instance data. /// InstanceData = 0x00000004, - + /// /// Discard state and uniform bindings. /// State = 0x00000008, - + /// /// Discard transform. /// Transform = 0x00000010, - + /// /// Discard vertex streams. /// VertexStreams = 0x00000020, - + /// /// Discard all states. /// All = 0x000000ff, } - + [Flags] public enum DebugFlags : uint { @@ -580,34 +580,34 @@ public enum DebugFlags : uint /// No debug. /// None = 0x00000000, - + /// /// Enable wireframe for all primitives. /// Wireframe = 0x00000001, - + /// /// Enable infinitely fast hardware test. No draw calls will be submitted to driver. /// It's useful when profiling to quickly assess bottleneck between CPU and GPU. /// Ifh = 0x00000002, - + /// /// Enable statistics display. /// Stats = 0x00000004, - + /// /// Enable debug text display. /// Text = 0x00000008, - + /// /// Enable profiler. This causes per-view statistics to be collected, available through `bgfx::Stats::ViewStats`. This is unrelated to the profiler functions in `bgfx::CallbackI`. /// Profiler = 0x00000010, } - + [Flags] public enum BufferFlags : ushort { @@ -615,59 +615,59 @@ public enum BufferFlags : ushort /// 1 8-bit value /// ComputeFormat8x1 = 0x0001, - + /// /// 2 8-bit values /// ComputeFormat8x2 = 0x0002, - + /// /// 4 8-bit values /// ComputeFormat8x4 = 0x0003, - + /// /// 1 16-bit value /// ComputeFormat16x1 = 0x0004, - + /// /// 2 16-bit values /// ComputeFormat16x2 = 0x0005, - + /// /// 4 16-bit values /// ComputeFormat16x4 = 0x0006, - + /// /// 1 32-bit value /// ComputeFormat32x1 = 0x0007, - + /// /// 2 32-bit values /// ComputeFormat32x2 = 0x0008, - + /// /// 4 32-bit values /// ComputeFormat32x4 = 0x0009, ComputeFormatShift = 0, ComputeFormatMask = 0x000f, - + /// /// Type `int`. /// ComputeTypeInt = 0x0010, - + /// /// Type `uint`. /// ComputeTypeUint = 0x0020, - + /// /// Type `float`. /// @@ -675,91 +675,91 @@ public enum BufferFlags : ushort ComputeTypeShift = 4, ComputeTypeMask = 0x0030, None = 0x0000, - + /// /// Buffer will be read by shader. /// ComputeRead = 0x0100, - + /// /// Buffer will be used for writing. /// ComputeWrite = 0x0200, - + /// /// Buffer will be used for storing draw indirect commands. /// DrawIndirect = 0x0400, - + /// /// Allow dynamic index/vertex buffer resize during update. /// AllowResize = 0x0800, - + /// /// Index buffer contains 32-bit indices. /// Index32 = 0x1000, ComputeReadWrite = 0x0300, } - + [Flags] public enum TextureFlags : ulong { None = 0x0000000000000000, - + /// /// Texture will be used for MSAA sampling. /// MsaaSample = 0x0000000800000000, - + /// /// Render target no MSAA. /// Rt = 0x0000001000000000, - + /// /// Texture will be used for compute write. /// ComputeWrite = 0x0000100000000000, - + /// /// Sample texture as sRGB. /// Srgb = 0x0000200000000000, - + /// /// Texture will be used as blit destination. /// BlitDst = 0x0000400000000000, - + /// /// Texture will be used for read back from GPU. /// ReadBack = 0x0000800000000000, - + /// /// Render target MSAAx2 mode. /// RtMsaaX2 = 0x0000002000000000, - + /// /// Render target MSAAx4 mode. /// RtMsaaX4 = 0x0000003000000000, - + /// /// Render target MSAAx8 mode. /// RtMsaaX8 = 0x0000004000000000, - + /// /// Render target MSAAx16 mode. /// RtMsaaX16 = 0x0000005000000000, RtMsaaShift = 36, RtMsaaMask = 0x0000007000000000, - + /// /// Render target will be used for writing /// @@ -767,7 +767,7 @@ public enum TextureFlags : ulong RtShift = 36, RtMask = 0x000000f000000000, } - + [Flags] public enum SamplerFlags : uint { @@ -775,119 +775,119 @@ public enum SamplerFlags : uint /// Wrap U mode: Mirror /// UMirror = 0x00000001, - + /// /// Wrap U mode: Clamp /// UClamp = 0x00000002, - + /// /// Wrap U mode: Border /// UBorder = 0x00000003, UShift = 0, UMask = 0x00000003, - + /// /// Wrap V mode: Mirror /// VMirror = 0x00000004, - + /// /// Wrap V mode: Clamp /// VClamp = 0x00000008, - + /// /// Wrap V mode: Border /// VBorder = 0x0000000c, VShift = 2, VMask = 0x0000000c, - + /// /// Wrap W mode: Mirror /// WMirror = 0x00000010, - + /// /// Wrap W mode: Clamp /// WClamp = 0x00000020, - + /// /// Wrap W mode: Border /// WBorder = 0x00000030, WShift = 4, WMask = 0x00000030, - + /// /// Min sampling mode: Point /// MinPoint = 0x00000040, - + /// /// Min sampling mode: Anisotropic /// MinAnisotropic = 0x00000080, MinShift = 6, MinMask = 0x000000c0, - + /// /// Mag sampling mode: Point /// MagPoint = 0x00000100, - + /// /// Mag sampling mode: Anisotropic /// MagAnisotropic = 0x00000200, MagShift = 8, MagMask = 0x00000300, - + /// /// Mip sampling mode: Point /// MipPoint = 0x00000400, MipShift = 10, MipMask = 0x00000400, - + /// /// Compare when sampling depth texture: less. /// CompareLess = 0x00010000, - + /// /// Compare when sampling depth texture: less or equal. /// CompareLequal = 0x00020000, - + /// /// Compare when sampling depth texture: equal. /// CompareEqual = 0x00030000, - + /// /// Compare when sampling depth texture: greater or equal. /// CompareGequal = 0x00040000, - + /// /// Compare when sampling depth texture: greater. /// CompareGreater = 0x00050000, - + /// /// Compare when sampling depth texture: not equal. /// CompareNotequal = 0x00060000, - + /// /// Compare when sampling depth texture: never. /// CompareNever = 0x00070000, - + /// /// Compare when sampling depth texture: always. /// @@ -899,7 +899,7 @@ public enum SamplerFlags : uint ReservedShift = 28, ReservedMask = 0xf0000000, None = 0x00000000, - + /// /// Sample stencil instead of depth. /// @@ -910,7 +910,7 @@ public enum SamplerFlags : uint UvwBorder = 0x0000003f, BitsMask = 0x000f07ff, } - + [Flags] public enum ResetFlags : uint { @@ -918,85 +918,85 @@ public enum ResetFlags : uint /// Enable 2x MSAA. /// MsaaX2 = 0x00000010, - + /// /// Enable 4x MSAA. /// MsaaX4 = 0x00000020, - + /// /// Enable 8x MSAA. /// MsaaX8 = 0x00000030, - + /// /// Enable 16x MSAA. /// MsaaX16 = 0x00000040, MsaaShift = 4, MsaaMask = 0x00000070, - + /// /// No reset flags. /// None = 0x00000000, - + /// /// Not supported yet. /// Fullscreen = 0x00000001, - + /// /// Enable V-Sync. /// Vsync = 0x00000080, - + /// /// Turn on/off max anisotropy. /// Maxanisotropy = 0x00000100, - + /// /// Begin screen capture. /// Capture = 0x00000200, - + /// /// Flush rendering after submitting to GPU. /// FlushAfterRender = 0x00002000, - + /// /// This flag specifies where flip occurs. Default behaviour is that flip occurs /// before rendering new frame. This flag only has effect when `BGFX_CONFIG_MULTITHREADED=0`. /// FlipAfterRender = 0x00004000, - + /// /// Enable sRGB backbuffer. /// SrgbBackbuffer = 0x00008000, - + /// /// Enable HDR10 rendering. /// Hdr10 = 0x00010000, - + /// /// Enable HiDPI rendering. /// Hidpi = 0x00020000, - + /// /// Enable depth clamp. /// DepthClamp = 0x00040000, - + /// /// Suspend rendering. /// Suspend = 0x00080000, - + /// /// Transparent backbuffer. Availability depends on: `BGFX_CAPS_TRANSPARENT_BACKBUFFER`. /// @@ -1006,7 +1006,7 @@ public enum ResetFlags : uint ReservedShift = 31, ReservedMask = 0x80000000, } - + [Flags] public enum CapsFlags : ulong { @@ -1014,159 +1014,159 @@ public enum CapsFlags : ulong /// Alpha to coverage is supported. /// AlphaToCoverage = 0x0000000000000001, - + /// /// Blend independent is supported. /// BlendIndependent = 0x0000000000000002, - + /// /// Compute shaders are supported. /// Compute = 0x0000000000000004, - + /// /// Conservative rasterization is supported. /// ConservativeRaster = 0x0000000000000008, - + /// /// Draw indirect is supported. /// DrawIndirect = 0x0000000000000010, - + /// /// Draw indirect with indirect count is supported. /// DrawIndirectCount = 0x0000000000000020, - + /// /// Fragment depth is available in fragment shader. /// FragmentDepth = 0x0000000000000040, - + /// /// Fragment ordering is available in fragment shader. /// FragmentOrdering = 0x0000000000000080, - + /// /// Graphics debugger is present. /// GraphicsDebugger = 0x0000000000000100, - + /// /// HDR10 rendering is supported. /// Hdr10 = 0x0000000000000200, - + /// /// HiDPI rendering is supported. /// Hidpi = 0x0000000000000400, - + /// /// Image Read/Write is supported. /// ImageRw = 0x0000000000000800, - + /// /// 32-bit indices are supported. /// Index32 = 0x0000000000001000, - + /// /// Instancing is supported. /// Instancing = 0x0000000000002000, - + /// /// Occlusion query is supported. /// OcclusionQuery = 0x0000000000004000, - + /// /// PrimitiveID is available in fragment shader. /// PrimitiveId = 0x0000000000008000, - + /// /// Renderer is on separate thread. /// RendererMultithreaded = 0x0000000000010000, - + /// /// Multiple windows are supported. /// SwapChain = 0x0000000000020000, - + /// /// Texture blit is supported. /// TextureBlit = 0x0000000000040000, - + /// /// Texture compare less equal mode is supported. /// TextureCompareLequal = 0x0000000000080000, TextureCompareReserved = 0x0000000000100000, - + /// /// Cubemap texture array is supported. /// TextureCubeArray = 0x0000000000200000, - + /// /// CPU direct access to GPU texture memory. /// TextureDirectAccess = 0x0000000000400000, - + /// /// Read-back texture is supported. /// TextureReadBack = 0x0000000000800000, - + /// /// 2D texture array is supported. /// Texture2dArray = 0x0000000001000000, - + /// /// 3D textures are supported. /// Texture3d = 0x0000000002000000, - + /// /// Transparent back buffer supported. /// TransparentBackbuffer = 0x0000000004000000, - + /// /// Vertex attribute half-float is supported. /// VertexAttribHalf = 0x0000000008000000, - + /// /// Vertex attribute 10_10_10_2 is supported. /// VertexAttribUint10 = 0x0000000010000000, - + /// /// Rendering with VertexID only is supported. /// VertexId = 0x0000000020000000, - + /// /// Viewport layer is available in vertex shader. /// ViewportLayerArray = 0x0000000040000000, - + /// /// All texture compare modes are supported. /// TextureCompareAll = 0x0000000000180000, } - + [Flags] public enum CapsFormatFlags : uint { @@ -1174,88 +1174,88 @@ public enum CapsFormatFlags : uint /// Texture format is not supported. /// TextureNone = 0x00000000, - + /// /// Texture format is supported. /// Texture2d = 0x00000001, - + /// /// Texture as sRGB format is supported. /// Texture2dSrgb = 0x00000002, - + /// /// Texture format is emulated. /// Texture2dEmulated = 0x00000004, - + /// /// Texture format is supported. /// Texture3d = 0x00000008, - + /// /// Texture as sRGB format is supported. /// Texture3dSrgb = 0x00000010, - + /// /// Texture format is emulated. /// Texture3dEmulated = 0x00000020, - + /// /// Texture format is supported. /// TextureCube = 0x00000040, - + /// /// Texture as sRGB format is supported. /// TextureCubeSrgb = 0x00000080, - + /// /// Texture format is emulated. /// TextureCubeEmulated = 0x00000100, - + /// /// Texture format can be used from vertex shader. /// TextureVertex = 0x00000200, - + /// /// Texture format can be used as image and read from. /// TextureImageRead = 0x00000400, - + /// /// Texture format can be used as image and written to. /// TextureImageWrite = 0x00000800, - + /// /// Texture format can be used as frame buffer. /// TextureFramebuffer = 0x00001000, - + /// /// Texture format can be used as MSAA frame buffer. /// TextureFramebufferMsaa = 0x00002000, - + /// /// Texture can be sampled as MSAA. /// TextureMsaa = 0x00004000, - + /// /// Texture format supports auto-generated mips. /// TextureMipAutogen = 0x00008000, } - + [Flags] public enum ResolveFlags : uint { @@ -1263,13 +1263,13 @@ public enum ResolveFlags : uint /// No resolve flags. /// None = 0x00000000, - + /// /// Auto-generate mip maps on resolve. /// AutoGenMips = 0x00000001, } - + [Flags] public enum PciIdFlags : ushort { @@ -1277,43 +1277,43 @@ public enum PciIdFlags : ushort /// Autoselect adapter. /// None = 0x0000, - + /// /// Software rasterizer. /// SoftwareRasterizer = 0x0001, - + /// /// AMD adapter. /// Amd = 0x1002, - + /// /// Apple adapter. /// Apple = 0x106b, - + /// /// Intel adapter. /// Intel = 0x8086, - + /// /// nVidia adapter. /// Nvidia = 0x10de, - + /// /// Microsoft adapter. /// Microsoft = 0x1414, - + /// /// ARM adapter. /// Arm = 0x13b5, } - + [Flags] public enum CubeMapFlags : uint { @@ -1321,33 +1321,33 @@ public enum CubeMapFlags : uint /// Cubemap +x. /// PositiveX = 0x00000000, - + /// /// Cubemap -x. /// NegativeX = 0x00000001, - + /// /// Cubemap +y. /// PositiveY = 0x00000002, - + /// /// Cubemap -y. /// NegativeY = 0x00000003, - + /// /// Cubemap +z. /// PositiveZ = 0x00000004, - + /// /// Cubemap -z. /// NegativeZ = 0x00000005, } - + public enum Fatal { DebugCheck, @@ -1355,382 +1355,382 @@ public enum Fatal UnableToInitialize, UnableToCreateTexture, DeviceLost, - + Count } - + public enum RendererType { /// /// No rendering. /// Noop, - + /// /// AGC /// Agc, - + /// /// Direct3D 11.0 /// Direct3D11, - + /// /// Direct3D 12.0 /// Direct3D12, - + /// /// GNM /// Gnm, - + /// /// Metal /// Metal, - + /// /// NVN /// Nvn, - + /// /// OpenGL ES 2.0+ /// OpenGLES, - + /// /// OpenGL 2.1+ /// OpenGL, - + /// /// Vulkan /// Vulkan, - + Count } - + public enum Access { /// /// Read. /// Read, - + /// /// Write. /// Write, - + /// /// Read and write. /// ReadWrite, - + Count } - + public enum Attrib { /// /// a_position /// Position, - + /// /// a_normal /// Normal, - + /// /// a_tangent /// Tangent, - + /// /// a_bitangent /// Bitangent, - + /// /// a_color0 /// Color0, - + /// /// a_color1 /// Color1, - + /// /// a_color2 /// Color2, - + /// /// a_color3 /// Color3, - + /// /// a_indices /// Indices, - + /// /// a_weight /// Weight, - + /// /// a_texcoord0 /// TexCoord0, - + /// /// a_texcoord1 /// TexCoord1, - + /// /// a_texcoord2 /// TexCoord2, - + /// /// a_texcoord3 /// TexCoord3, - + /// /// a_texcoord4 /// TexCoord4, - + /// /// a_texcoord5 /// TexCoord5, - + /// /// a_texcoord6 /// TexCoord6, - + /// /// a_texcoord7 /// TexCoord7, - + Count } - + public enum AttribType { /// /// Uint8 /// Uint8, - + /// /// Uint10, availability depends on: `BGFX_CAPS_VERTEX_ATTRIB_UINT10`. /// Uint10, - + /// /// Int16 /// Int16, - + /// /// Half, availability depends on: `BGFX_CAPS_VERTEX_ATTRIB_HALF`. /// Half, - + /// /// Float /// Float, - + Count } - + public enum TextureFormat { /// /// DXT1 R5G6B5A1 /// BC1, - + /// /// DXT3 R5G6B5A4 /// BC2, - + /// /// DXT5 R5G6B5A8 /// BC3, - + /// /// LATC1/ATI1 R8 /// BC4, - + /// /// LATC2/ATI2 RG8 /// BC5, - + /// /// BC6H RGB16F /// BC6H, - + /// /// BC7 RGB 4-7 bits per color channel, 0-8 bits alpha /// BC7, - + /// /// ETC1 RGB8 /// ETC1, - + /// /// ETC2 RGB8 /// ETC2, - + /// /// ETC2 RGBA8 /// ETC2A, - + /// /// ETC2 RGB8A1 /// ETC2A1, - + /// /// PVRTC1 RGB 2BPP /// PTC12, - + /// /// PVRTC1 RGB 4BPP /// PTC14, - + /// /// PVRTC1 RGBA 2BPP /// PTC12A, - + /// /// PVRTC1 RGBA 4BPP /// PTC14A, - + /// /// PVRTC2 RGBA 2BPP /// PTC22, - + /// /// PVRTC2 RGBA 4BPP /// PTC24, - + /// /// ATC RGB 4BPP /// ATC, - + /// /// ATCE RGBA 8 BPP explicit alpha /// ATCE, - + /// /// ATCI RGBA 8 BPP interpolated alpha /// ATCI, - + /// /// ASTC 4x4 8.0 BPP /// ASTC4x4, - + /// /// ASTC 5x4 6.40 BPP /// ASTC5x4, - + /// /// ASTC 5x5 5.12 BPP /// ASTC5x5, - + /// /// ASTC 6x5 4.27 BPP /// ASTC6x5, - + /// /// ASTC 6x6 3.56 BPP /// ASTC6x6, - + /// /// ASTC 8x5 3.20 BPP /// ASTC8x5, - + /// /// ASTC 8x6 2.67 BPP /// ASTC8x6, - + /// /// ASTC 8x8 2.00 BPP /// ASTC8x8, - + /// /// ASTC 10x5 2.56 BPP /// ASTC10x5, - + /// /// ASTC 10x6 2.13 BPP /// ASTC10x6, - + /// /// ASTC 10x8 1.60 BPP /// ASTC10x8, - + /// /// ASTC 10x10 1.28 BPP /// ASTC10x10, - + /// /// ASTC 12x10 1.07 BPP /// ASTC12x10, - + /// /// ASTC 12x12 0.89 BPP /// ASTC12x12, - + /// /// Compressed formats above. /// @@ -1787,7 +1787,7 @@ public enum TextureFormat RGB5A1, RGB10A2, RG11B10F, - + /// /// Depth formats below. /// @@ -1800,155 +1800,155 @@ public enum TextureFormat D24F, D32F, D0S8, - + Count } - + public enum UniformType { /// /// Sampler. /// Sampler, - + /// /// Reserved, do not use. /// End, - + /// /// 4 floats vector. /// Vec4, - + /// /// 3x3 matrix. /// Mat3, - + /// /// 4x4 matrix. /// Mat4, - + Count } - + public enum BackbufferRatio { /// /// Equal to backbuffer. /// Equal, - + /// /// One half size of backbuffer. /// Half, - + /// /// One quarter size of backbuffer. /// Quarter, - + /// /// One eighth size of backbuffer. /// Eighth, - + /// /// One sixteenth size of backbuffer. /// Sixteenth, - + /// /// Double size of backbuffer. /// Double, - + Count } - + public enum OcclusionQueryResult { /// /// Query failed test. /// Invisible, - + /// /// Query passed test. /// Visible, - + /// /// Query result is not available yet. /// NoResult, - + Count } - + public enum Topology { /// /// Triangle list. /// TriList, - + /// /// Triangle strip. /// TriStrip, - + /// /// Line list. /// LineList, - + /// /// Line strip. /// LineStrip, - + /// /// Point list. /// PointList, - + Count } - + public enum TopologyConvert { /// /// Flip winding order of triangle list. /// TriListFlipWinding, - + /// /// Flip winding order of triangle strip. /// TriStripFlipWinding, - + /// /// Convert triangle list to line list. /// TriListToLineList, - + /// /// Convert triangle strip to triangle list. /// TriStripToTriList, - + /// /// Convert line strip to line list. /// LineStripToLineList, - + Count } - + public enum TopologySort { DirectionFrontToBackMin, @@ -1963,75 +1963,75 @@ public enum TopologySort DistanceBackToFrontMin, DistanceBackToFrontAvg, DistanceBackToFrontMax, - + Count } - + public enum ViewMode { /// /// Default sort order. /// Default, - + /// /// Sort in the same order in which submit calls were called. /// Sequential, - + /// /// Sort draw call depth in ascending order. /// DepthAscending, - + /// /// Sort draw call depth in descending order. /// DepthDescending, - + Count } - + public enum NativeWindowHandleType { /// /// Platform default handle type (X11 on Linux). /// Default, - + /// /// Wayland. /// Wayland, - + Count } - + public enum RenderFrame { /// /// Renderer context is not created yet. /// NoContext, - + /// /// Renderer context is created and rendering. /// Render, - + /// /// Renderer context wait for main thread signal timed out without rendering. /// Timeout, - + /// /// Renderer context is getting destroyed. /// Exiting, - + Count } - + public unsafe struct Caps { public unsafe struct GPU @@ -2039,7 +2039,7 @@ public unsafe struct GPU public ushort vendorId; public ushort deviceId; } - + public unsafe struct Limits { public uint maxDrawCalls; @@ -2067,7 +2067,7 @@ public unsafe struct Limits public uint transientVbSize; public uint transientIbSize; } - + public RendererType rendererType; public ulong supported; public ushort vendorId; @@ -2079,13 +2079,13 @@ public unsafe struct Limits public Limits limits; public fixed ushort formats[96]; } - + public unsafe struct InternalData { public Caps* caps; public void* context; } - + public unsafe struct PlatformData { public void* ndt; @@ -2095,7 +2095,7 @@ public unsafe struct PlatformData public void* backBufferDS; public NativeWindowHandleType type; } - + public unsafe struct Resolution { public TextureFormat format; @@ -2106,7 +2106,7 @@ public unsafe struct Resolution public byte maxFrameLatency; public byte debugTextScale; } - + public unsafe struct Init { public unsafe struct Limits @@ -2116,7 +2116,7 @@ public unsafe struct Limits public uint transientVbSize; public uint transientIbSize; } - + public RendererType type; public ushort vendorId; public ushort deviceId; @@ -2129,13 +2129,13 @@ public unsafe struct Limits public IntPtr callback; public IntPtr allocator; } - + public unsafe struct Memory { public byte* data; public uint size; } - + public unsafe struct TransientIndexBuffer { public byte* data; @@ -2144,7 +2144,7 @@ public unsafe struct TransientIndexBuffer public IndexBufferHandle handle; public byte isIndex16; } - + public unsafe struct TransientVertexBuffer { public byte* data; @@ -2154,7 +2154,7 @@ public unsafe struct TransientVertexBuffer public VertexBufferHandle handle; public VertexLayoutHandle layoutHandle; } - + public unsafe struct InstanceDataBuffer { public byte* data; @@ -2164,7 +2164,7 @@ public unsafe struct InstanceDataBuffer public ushort stride; public VertexBufferHandle handle; } - + public unsafe struct TextureInfo { public TextureFormat format; @@ -2177,14 +2177,14 @@ public unsafe struct TextureInfo public byte bitsPerPixel; public byte cubeMap; } - + public unsafe struct UniformInfo { public fixed byte name[256]; public UniformType type; public ushort num; } - + public unsafe struct Attachment { public Access access; @@ -2194,13 +2194,13 @@ public unsafe struct Attachment public ushort numLayers; public byte resolve; } - + public unsafe struct Transform { public float* data; public ushort num; } - + public unsafe struct ViewStats { public fixed byte name[256]; @@ -2211,13 +2211,13 @@ public unsafe struct ViewStats public long gpuTimeEnd; public uint gpuFrameNum; } - + public unsafe struct EncoderStats { public long cpuTimeBegin; public long cpuTimeEnd; } - + public unsafe struct Stats { public long cpuTimeFrame; @@ -2261,7 +2261,7 @@ public unsafe struct Stats public byte numEncoders; public EncoderStats* encoderStats; } - + public unsafe struct VertexLayout { public uint hash; @@ -2269,71 +2269,71 @@ public unsafe struct VertexLayout public fixed ushort offset[18]; public fixed ushort attributes[18]; } - + public unsafe struct Encoder { } - + public struct DynamicIndexBufferHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct DynamicVertexBufferHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct FrameBufferHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct IndexBufferHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct IndirectBufferHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct OcclusionQueryHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct ProgramHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct ShaderHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct TextureHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct UniformHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct VertexBufferHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + public struct VertexLayoutHandle { public ushort idx; public bool Valid => idx != UInt16.MaxValue; } - + /// /// Init attachment. @@ -2348,7 +2348,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_attachment_init", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void attachment_init(Attachment* _this, TextureHandle _handle, Access _access, ushort _layer, ushort _numLayers, ushort _mip, byte _resolve); - + /// /// Start VertexLayout. /// @@ -2357,7 +2357,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_vertex_layout_begin", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe VertexLayout* vertex_layout_begin(VertexLayout* _this, RendererType _rendererType); - + /// /// Add attribute to VertexLayout. /// @remarks Must be called between begin/end. @@ -2371,7 +2371,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_vertex_layout_add", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe VertexLayout* vertex_layout_add(VertexLayout* _this, Attrib _attrib, byte _num, AttribType _type, bool _normalized, bool _asInt); - + /// /// Decode attribute. /// @@ -2384,7 +2384,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_vertex_layout_decode", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void vertex_layout_decode(VertexLayout* _this, Attrib _attrib, byte * _num, AttribType* _type, bool* _normalized, bool* _asInt); - + /// /// Skip `_num` bytes in vertex stream. /// @@ -2393,14 +2393,14 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_vertex_layout_skip", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe VertexLayout* vertex_layout_skip(VertexLayout* _this, byte _num); - + /// /// End VertexLayout. /// /// [DllImport(DllName, EntryPoint="bgfx_vertex_layout_end", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void vertex_layout_end(VertexLayout* _this); - + /// /// Pack vertex attribute into vertex stream format. /// @@ -2414,7 +2414,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_vertex_pack", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void vertex_pack(float _input, bool _inputNormalized, Attrib _attr, VertexLayout* _layout, void* _data, uint _index); - + /// /// Unpack vertex attribute from vertex stream format. /// @@ -2427,7 +2427,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_vertex_unpack", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void vertex_unpack(float _output, Attrib _attr, VertexLayout* _layout, void* _data, uint _index); - + /// /// Converts vertex stream data from one vertex stream format to another. /// @@ -2440,7 +2440,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_vertex_convert", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void vertex_convert(VertexLayout* _dstLayout, void* _dstData, VertexLayout* _srcLayout, void* _srcData, uint _num); - + /// /// Weld vertices. /// @@ -2454,7 +2454,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_weld_vertices", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint weld_vertices(void* _output, VertexLayout* _layout, void* _data, uint _num, bool _index32, float _epsilon); - + /// /// Convert index buffer for use with different primitive topologies. /// @@ -2468,7 +2468,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_topology_convert", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint topology_convert(TopologyConvert _conversion, void* _dst, uint _dstSize, void* _indices, uint _numIndices, bool _index32); - + /// /// Sort indices. /// @@ -2486,7 +2486,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_topology_sort_tri_list", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void topology_sort_tri_list(TopologySort _sort, void* _dst, uint _dstSize, float _dir, float _pos, void* _vertices, uint _stride, void* _indices, uint _numIndices, bool _index32); - + /// /// Returns supported backend API renderers. /// @@ -2496,7 +2496,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_supported_renderers", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe byte get_supported_renderers(byte _max, RendererType* _enum); - + /// /// Returns name of renderer. /// @@ -2505,7 +2505,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_renderer_name", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe IntPtr get_renderer_name(RendererType _type); - + /// /// Fill bgfx::Init struct with default values, before using it to initialize the library. /// @@ -2514,7 +2514,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_init_ctor", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void init_ctor(Init* _init); - + /// /// Initialize the bgfx library. /// @@ -2524,14 +2524,14 @@ public struct VertexLayoutHandle { [DllImport(DllName, EntryPoint="bgfx_init", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] public static extern unsafe bool init(Init* _init); - + /// /// Shutdown bgfx library. /// /// [DllImport(DllName, EntryPoint="bgfx_shutdown", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void shutdown(); - + /// /// Reset graphic settings and back-buffer size. /// @attention This call doesn’t change the window size, it just resizes @@ -2545,7 +2545,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_reset", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void reset(uint _width, uint _height, uint _flags, TextureFormat _format); - + /// /// Advance to next frame. When using multithreaded renderer, this call /// just swaps internal buffers, kicks render thread, and returns. In @@ -2556,7 +2556,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_frame", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint frame(bool _capture); - + /// /// Returns current renderer backend API type. /// @remarks @@ -2565,7 +2565,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_renderer_type", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe RendererType get_renderer_type(); - + /// /// Returns renderer capabilities. /// @remarks @@ -2574,7 +2574,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_caps", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe Caps* get_caps(); - + /// /// Returns performance counters. /// @attention Pointer returned is valid until `bgfx::frame` is called. @@ -2582,7 +2582,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_stats", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe Stats* get_stats(); - + /// /// Allocate buffer to pass to bgfx calls. Data will be freed inside bgfx. /// @@ -2591,7 +2591,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_alloc", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe Memory* alloc(uint _size); - + /// /// Allocate buffer and copy data into it. Data will be freed inside bgfx. /// @@ -2601,7 +2601,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_copy", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe Memory* copy(void* _data, uint _size); - + /// /// Make reference to data to pass to bgfx. Unlike `bgfx::alloc`, this call /// doesn't allocate memory for data. It just copies the _data pointer. You @@ -2617,7 +2617,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_make_ref", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe Memory* make_ref(void* _data, uint _size); - + /// /// Make reference to data to pass to bgfx. Unlike `bgfx::alloc`, this call /// doesn't allocate memory for data. It just copies the _data pointer. You @@ -2635,7 +2635,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_make_ref_release", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe Memory* make_ref_release(void* _data, uint _size, IntPtr _releaseFn, void* _userData); - + /// /// Set debug flags. /// @@ -2644,7 +2644,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_debug", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_debug(uint _debug); - + /// /// Clear internal debug text buffer. /// @@ -2654,7 +2654,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_dbg_text_clear", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void dbg_text_clear(byte _attr, bool _small); - + /// /// Print formatted data to internal debug text character-buffer (VGA-compatible text mode). /// @@ -2666,7 +2666,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_dbg_text_printf", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void dbg_text_printf(ushort _x, ushort _y, byte _attr, [MarshalAs(UnmanagedType.LPStr)] string _format, [MarshalAs(UnmanagedType.LPStr)] string args ); - + /// /// Print formatted data from variable argument list to internal debug text character-buffer (VGA-compatible text mode). /// @@ -2679,7 +2679,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_dbg_text_vprintf", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void dbg_text_vprintf(ushort _x, ushort _y, byte _attr, [MarshalAs(UnmanagedType.LPStr)] string _format, IntPtr _argList); - + /// /// Draw image into internal debug text buffer. /// @@ -2693,7 +2693,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_dbg_text_image", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void dbg_text_image(ushort _x, ushort _y, ushort _width, ushort _height, void* _data, ushort _pitch); - + /// /// Create static index buffer. /// @@ -2703,7 +2703,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe IndexBufferHandle create_index_buffer(Memory* _mem, ushort _flags); - + /// /// Set static index buffer debug name. /// @@ -2714,7 +2714,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_index_buffer_name", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_index_buffer_name(IndexBufferHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len); - + /// /// Destroy static index buffer. /// @@ -2723,7 +2723,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_index_buffer(IndexBufferHandle _handle); - + /// /// Create vertex layout. /// @@ -2732,7 +2732,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_vertex_layout", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe VertexLayoutHandle create_vertex_layout(VertexLayout* _layout); - + /// /// Destroy vertex layout. /// @@ -2741,7 +2741,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_vertex_layout", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_vertex_layout(VertexLayoutHandle _layoutHandle); - + /// /// Create static vertex buffer. /// @@ -2752,7 +2752,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe VertexBufferHandle create_vertex_buffer(Memory* _mem, VertexLayout* _layout, ushort _flags); - + /// /// Set static vertex buffer debug name. /// @@ -2763,7 +2763,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer_name", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_vertex_buffer_name(VertexBufferHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len); - + /// /// Destroy static vertex buffer. /// @@ -2772,7 +2772,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_vertex_buffer(VertexBufferHandle _handle); - + /// /// Create empty dynamic index buffer. /// @@ -2782,7 +2782,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe DynamicIndexBufferHandle create_dynamic_index_buffer(uint _num, ushort _flags); - + /// /// Create a dynamic index buffer and initialize it. /// @@ -2792,7 +2792,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_dynamic_index_buffer_mem", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe DynamicIndexBufferHandle create_dynamic_index_buffer_mem(Memory* _mem, ushort _flags); - + /// /// Update dynamic index buffer. /// @@ -2803,7 +2803,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_update_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void update_dynamic_index_buffer(DynamicIndexBufferHandle _handle, uint _startIndex, Memory* _mem); - + /// /// Destroy dynamic index buffer. /// @@ -2812,7 +2812,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_dynamic_index_buffer(DynamicIndexBufferHandle _handle); - + /// /// Create empty dynamic vertex buffer. /// @@ -2823,7 +2823,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe DynamicVertexBufferHandle create_dynamic_vertex_buffer(uint _num, VertexLayout* _layout, ushort _flags); - + /// /// Create dynamic vertex buffer and initialize it. /// @@ -2834,7 +2834,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_dynamic_vertex_buffer_mem", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe DynamicVertexBufferHandle create_dynamic_vertex_buffer_mem(Memory* _mem, VertexLayout* _layout, ushort _flags); - + /// /// Update dynamic vertex buffer. /// @@ -2845,7 +2845,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_update_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void update_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle, uint _startVertex, Memory* _mem); - + /// /// Destroy dynamic vertex buffer. /// @@ -2854,7 +2854,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle); - + /// /// Returns number of requested or maximum available indices. /// @@ -2864,7 +2864,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_avail_transient_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint get_avail_transient_index_buffer(uint _num, bool _index32); - + /// /// Returns number of requested or maximum available vertices. /// @@ -2874,7 +2874,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_avail_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint get_avail_transient_vertex_buffer(uint _num, VertexLayout* _layout); - + /// /// Returns number of requested or maximum available instance buffer slots. /// @@ -2884,7 +2884,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_avail_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint get_avail_instance_data_buffer(uint _num, ushort _stride); - + /// /// Allocate transient index buffer. /// @@ -2895,7 +2895,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_alloc_transient_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void alloc_transient_index_buffer(TransientIndexBuffer* _tib, uint _num, bool _index32); - + /// /// Allocate transient vertex buffer. /// @@ -2906,7 +2906,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_alloc_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void alloc_transient_vertex_buffer(TransientVertexBuffer* _tvb, uint _num, VertexLayout* _layout); - + /// /// Check for required space and allocate transient vertex and index /// buffers. If both space requirements are satisfied function returns @@ -2923,7 +2923,7 @@ public struct VertexLayoutHandle { [DllImport(DllName, EntryPoint="bgfx_alloc_transient_buffers", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] public static extern unsafe bool alloc_transient_buffers(TransientVertexBuffer* _tvb, VertexLayout* _layout, uint _numVertices, TransientIndexBuffer* _tib, uint _numIndices, bool _index32); - + /// /// Allocate instance data buffer. /// @@ -2934,7 +2934,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_alloc_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void alloc_instance_data_buffer(InstanceDataBuffer* _idb, uint _num, ushort _stride); - + /// /// Create draw indirect buffer. /// @@ -2943,7 +2943,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_indirect_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe IndirectBufferHandle create_indirect_buffer(uint _num); - + /// /// Destroy draw indirect buffer. /// @@ -2952,7 +2952,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_indirect_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_indirect_buffer(IndirectBufferHandle _handle); - + /// /// Create shader from memory buffer. /// @remarks @@ -2963,7 +2963,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_shader", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe ShaderHandle create_shader(Memory* _mem); - + /// /// Returns the number of uniforms and uniform handles used inside a shader. /// @remarks @@ -2976,7 +2976,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_shader_uniforms", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe ushort get_shader_uniforms(ShaderHandle _handle, UniformHandle* _uniforms, ushort _max); - + /// /// Set shader debug name. /// @@ -2987,7 +2987,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_shader_name", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_shader_name(ShaderHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len); - + /// /// Destroy shader. /// @remark Once a shader program is created with _handle, @@ -2998,7 +2998,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_shader", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_shader(ShaderHandle _handle); - + /// /// Create program with vertex and fragment shaders. /// @@ -3009,7 +3009,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_program", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe ProgramHandle create_program(ShaderHandle _vsh, ShaderHandle _fsh, bool _destroyShaders); - + /// /// Create program with compute shader. /// @@ -3019,7 +3019,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_compute_program", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe ProgramHandle create_compute_program(ShaderHandle _csh, bool _destroyShaders); - + /// /// Destroy program. /// @@ -3028,7 +3028,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_program", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_program(ProgramHandle _handle); - + /// /// Validate texture parameters. /// @@ -3042,7 +3042,7 @@ public struct VertexLayoutHandle { [DllImport(DllName, EntryPoint="bgfx_is_texture_valid", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] public static extern unsafe bool is_texture_valid(ushort _depth, bool _cubeMap, ushort _numLayers, TextureFormat _format, ulong _flags); - + /// /// Validate frame buffer parameters. /// @@ -3053,7 +3053,7 @@ public struct VertexLayoutHandle { [DllImport(DllName, EntryPoint="bgfx_is_frame_buffer_valid", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] public static extern unsafe bool is_frame_buffer_valid(byte _num, Attachment* _attachment); - + /// /// Calculate amount of memory required for texture. /// @@ -3069,7 +3069,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_calc_texture_size", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void calc_texture_size(TextureInfo* _info, ushort _width, ushort _height, ushort _depth, bool _cubeMap, bool _hasMips, ushort _numLayers, TextureFormat _format); - + /// /// Create texture from memory buffer. /// @@ -3081,7 +3081,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_texture", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe TextureHandle create_texture(Memory* _mem, ulong _flags, byte _skip, TextureInfo* _info); - + /// /// Create 2D texture. /// @@ -3096,7 +3096,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_texture_2d", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe TextureHandle create_texture_2d(ushort _width, ushort _height, bool _hasMips, ushort _numLayers, TextureFormat _format, ulong _flags, Memory* _mem); - + /// /// Create texture with size based on back-buffer ratio. Texture will maintain ratio /// if back buffer resolution changes. @@ -3110,7 +3110,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_texture_2d_scaled", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe TextureHandle create_texture_2d_scaled(BackbufferRatio _ratio, bool _hasMips, ushort _numLayers, TextureFormat _format, ulong _flags); - + /// /// Create 3D texture. /// @@ -3125,7 +3125,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_texture_3d", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe TextureHandle create_texture_3d(ushort _width, ushort _height, ushort _depth, bool _hasMips, TextureFormat _format, ulong _flags, Memory* _mem); - + /// /// Create Cube texture. /// @@ -3139,7 +3139,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_texture_cube", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe TextureHandle create_texture_cube(ushort _size, bool _hasMips, ushort _numLayers, TextureFormat _format, ulong _flags, Memory* _mem); - + /// /// Update 2D texture. /// @attention It's valid to update only mutable texture. See `bgfx::createTexture2D` for more info. @@ -3157,7 +3157,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_update_texture_2d", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void update_texture_2d(TextureHandle _handle, ushort _layer, byte _mip, ushort _x, ushort _y, ushort _width, ushort _height, Memory* _mem, ushort _pitch); - + /// /// Update 3D texture. /// @attention It's valid to update only mutable texture. See `bgfx::createTexture3D` for more info. @@ -3175,7 +3175,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_update_texture_3d", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void update_texture_3d(TextureHandle _handle, byte _mip, ushort _x, ushort _y, ushort _z, ushort _width, ushort _height, ushort _depth, Memory* _mem); - + /// /// Update Cube texture. /// @attention It's valid to update only mutable texture. See `bgfx::createTextureCube` for more info. @@ -3194,7 +3194,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_update_texture_cube", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void update_texture_cube(TextureHandle _handle, ushort _layer, byte _side, byte _mip, ushort _x, ushort _y, ushort _width, ushort _height, Memory* _mem, ushort _pitch); - + /// /// Read back texture content. /// @attention Texture must be created with `BGFX_TEXTURE_READ_BACK` flag. @@ -3207,7 +3207,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_read_texture", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint read_texture(TextureHandle _handle, void* _data, byte _mip); - + /// /// Set texture debug name. /// @@ -3218,7 +3218,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_texture_name", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_texture_name(TextureHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len); - + /// /// Returns texture direct access pointer. /// @attention Availability depends on: `BGFX_CAPS_TEXTURE_DIRECT_ACCESS`. This feature @@ -3229,7 +3229,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_direct_access_ptr", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void* get_direct_access_ptr(TextureHandle _handle); - + /// /// Destroy texture. /// @@ -3238,7 +3238,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_texture", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_texture(TextureHandle _handle); - + /// /// Create frame buffer (simple). /// @@ -3250,7 +3250,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_frame_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe FrameBufferHandle create_frame_buffer(ushort _width, ushort _height, TextureFormat _format, ulong _textureFlags); - + /// /// Create frame buffer with size based on back-buffer ratio. Frame buffer will maintain ratio /// if back buffer resolution changes. @@ -3262,7 +3262,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_frame_buffer_scaled", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe FrameBufferHandle create_frame_buffer_scaled(BackbufferRatio _ratio, TextureFormat _format, ulong _textureFlags); - + /// /// Create MRT frame buffer from texture handles (simple). /// @@ -3273,7 +3273,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_frame_buffer_from_handles", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe FrameBufferHandle create_frame_buffer_from_handles(byte _num, TextureHandle* _handles, bool _destroyTexture); - + /// /// Create MRT frame buffer from texture handles with specific layer and /// mip level. @@ -3285,7 +3285,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_frame_buffer_from_attachment", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe FrameBufferHandle create_frame_buffer_from_attachment(byte _num, Attachment* _attachment, bool _destroyTexture); - + /// /// Create frame buffer for multiple window rendering. /// @remarks @@ -3301,7 +3301,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_frame_buffer_from_nwh", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe FrameBufferHandle create_frame_buffer_from_nwh(void* _nwh, ushort _width, ushort _height, TextureFormat _format, TextureFormat _depthFormat); - + /// /// Set frame buffer debug name. /// @@ -3312,7 +3312,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_frame_buffer_name", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_frame_buffer_name(FrameBufferHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len); - + /// /// Obtain texture handle of frame buffer attachment. /// @@ -3321,7 +3321,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_texture", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe TextureHandle get_texture(FrameBufferHandle _handle, byte _attachment); - + /// /// Destroy frame buffer. /// @@ -3330,7 +3330,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_frame_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_frame_buffer(FrameBufferHandle _handle); - + /// /// Create shader uniform parameter. /// @remarks @@ -3363,7 +3363,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_create_uniform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe UniformHandle create_uniform([MarshalAs(UnmanagedType.LPStr)] string _name, UniformType _type, ushort _num); - + /// /// Retrieve uniform info. /// @@ -3373,7 +3373,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_uniform_info", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void get_uniform_info(UniformHandle _handle, UniformInfo* _info); - + /// /// Destroy shader uniform parameter. /// @@ -3382,14 +3382,14 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_uniform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_uniform(UniformHandle _handle); - + /// /// Create occlusion query. /// /// [DllImport(DllName, EntryPoint="bgfx_create_occlusion_query", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe OcclusionQueryHandle create_occlusion_query(); - + /// /// Retrieve occlusion query result from previous frame. /// @@ -3399,7 +3399,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_result", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe OcclusionQueryResult get_result(OcclusionQueryHandle _handle, int* _result); - + /// /// Destroy occlusion query. /// @@ -3408,7 +3408,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_destroy_occlusion_query", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void destroy_occlusion_query(OcclusionQueryHandle _handle); - + /// /// Set palette color value. /// @@ -3418,7 +3418,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_palette_color", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_palette_color(byte _index, float _rgba); - + /// /// Set palette color value. /// @@ -3431,7 +3431,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_palette_color_rgba32f", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_palette_color_rgba32f(byte _index, float _r, float _g, float _b, float _a); - + /// /// Set palette color value. /// @@ -3441,7 +3441,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_palette_color_rgba8", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_palette_color_rgba8(byte _index, uint _rgba); - + /// /// Set view name. /// @remarks @@ -3459,7 +3459,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_name", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_name(ushort _id, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len); - + /// /// Set view rectangle. Draw primitive outside view will be clipped. /// @@ -3472,7 +3472,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_rect", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_rect(ushort _id, ushort _x, ushort _y, ushort _width, ushort _height); - + /// /// Set view rectangle. Draw primitive outside view will be clipped. /// @@ -3484,7 +3484,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_rect_ratio", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_rect_ratio(ushort _id, ushort _x, ushort _y, BackbufferRatio _ratio); - + /// /// Set view scissor. Draw primitive outside view will be clipped. When /// _x, _y, _width and _height are set to 0, scissor will be disabled. @@ -3498,7 +3498,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_scissor", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_scissor(ushort _id, ushort _x, ushort _y, ushort _width, ushort _height); - + /// /// Set view clear flags. /// @@ -3511,7 +3511,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_clear", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_clear(ushort _id, ushort _flags, uint _rgba, float _depth, byte _stencil); - + /// /// Set view clear flags with different clear color for each /// frame buffer texture. `bgfx::setPaletteColor` must be used to set up a @@ -3533,7 +3533,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_clear_mrt", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_clear_mrt(ushort _id, ushort _flags, float _depth, byte _stencil, byte _c0, byte _c1, byte _c2, byte _c3, byte _c4, byte _c5, byte _c6, byte _c7); - + /// /// Set view sorting mode. /// @remarks @@ -3545,7 +3545,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_mode", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_mode(ushort _id, ViewMode _mode); - + /// /// Set view frame buffer. /// @remarks @@ -3557,7 +3557,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_frame_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_frame_buffer(ushort _id, FrameBufferHandle _handle); - + /// /// Set view's view matrix and projection matrix, /// all draw primitives in this view will use these two matrices. @@ -3569,7 +3569,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_transform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_transform(ushort _id, void* _view, void* _proj); - + /// /// Post submit view reordering. /// @@ -3580,14 +3580,14 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_view_order", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_view_order(ushort _id, ushort _num, ushort* _order); - + /// /// Reset all view settings to default. /// /// [DllImport(DllName, EntryPoint="bgfx_reset_view", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void reset_view(ushort _id); - + /// /// Begin submitting draw calls from thread. /// @@ -3596,7 +3596,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_begin", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe Encoder* encoder_begin(bool _forThread); - + /// /// End submitting draw calls from thread. /// @@ -3605,7 +3605,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_end", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_end(Encoder* _encoder); - + /// /// Sets a debug marker. This allows you to group graphics calls together for easy browsing in /// graphics debugging tools. @@ -3616,7 +3616,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_marker", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_marker(Encoder* _this, [MarshalAs(UnmanagedType.LPStr)] string _name, int _len); - + /// /// Set render states for draw primitive. /// @remarks @@ -3636,7 +3636,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_state", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_state(Encoder* _this, ulong _state, uint _rgba); - + /// /// Set condition for rendering. /// @@ -3646,7 +3646,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_condition", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_condition(Encoder* _this, OcclusionQueryHandle _handle, bool _visible); - + /// /// Set stencil test state. /// @@ -3656,7 +3656,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_stencil", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_stencil(Encoder* _this, uint _fstencil, uint _bstencil); - + /// /// Set scissor for draw primitive. /// @remark @@ -3670,7 +3670,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_scissor", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe ushort encoder_set_scissor(Encoder* _this, ushort _x, ushort _y, ushort _width, ushort _height); - + /// /// Set scissor from cache for draw primitive. /// @remark @@ -3681,7 +3681,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_scissor_cached", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_scissor_cached(Encoder* _this, ushort _cache); - + /// /// Set model matrix for draw primitive. If it is not called, /// the model will be rendered with an identity model matrix. @@ -3692,7 +3692,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_transform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint encoder_set_transform(Encoder* _this, void* _mtx, ushort _num); - + /// /// Set model matrix from matrix cache for draw primitive. /// @@ -3702,7 +3702,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_transform_cached", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_transform_cached(Encoder* _this, uint _cache, ushort _num); - + /// /// Reserve matrices in internal matrix cache. /// @attention Pointer returned can be modified until `bgfx::frame` is called. @@ -3713,7 +3713,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_alloc_transform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint encoder_alloc_transform(Encoder* _this, Transform* _transform, ushort _num); - + /// /// Set shader uniform parameter for draw primitive. /// @@ -3724,7 +3724,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_uniform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_uniform(Encoder* _this, UniformHandle _handle, void* _value, ushort _num); - + /// /// Set index buffer for draw primitive. /// @@ -3735,7 +3735,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_index_buffer(Encoder* _this, IndexBufferHandle _handle, uint _firstIndex, uint _numIndices); - + /// /// Set index buffer for draw primitive. /// @@ -3746,7 +3746,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_dynamic_index_buffer(Encoder* _this, DynamicIndexBufferHandle _handle, uint _firstIndex, uint _numIndices); - + /// /// Set index buffer for draw primitive. /// @@ -3757,7 +3757,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_transient_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_transient_index_buffer(Encoder* _this, TransientIndexBuffer* _tib, uint _firstIndex, uint _numIndices); - + /// /// Set vertex buffer for draw primitive. /// @@ -3769,7 +3769,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_vertex_buffer(Encoder* _this, byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -3782,7 +3782,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_vertex_buffer_with_layout(Encoder* _this, byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set vertex buffer for draw primitive. /// @@ -3794,10 +3794,10 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_dynamic_vertex_buffer(Encoder* _this, byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices); - + [DllImport(DllName, EntryPoint="bgfx_encoder_set_dynamic_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_dynamic_vertex_buffer_with_layout(Encoder* _this, byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set vertex buffer for draw primitive. /// @@ -3809,7 +3809,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_transient_vertex_buffer(Encoder* _this, byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -3822,7 +3822,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_transient_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_transient_vertex_buffer_with_layout(Encoder* _this, byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set number of vertices for auto generated vertices use in conjunction /// with gl_VertexID. @@ -3833,7 +3833,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_vertex_count", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_vertex_count(Encoder* _this, uint _numVertices); - + /// /// Set instance data buffer for draw primitive. /// @@ -3844,7 +3844,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_instance_data_buffer(Encoder* _this, InstanceDataBuffer* _idb, uint _start, uint _num); - + /// /// Set instance data buffer for draw primitive. /// @@ -3855,7 +3855,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_from_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_instance_data_from_vertex_buffer(Encoder* _this, VertexBufferHandle _handle, uint _startVertex, uint _num); - + /// /// Set instance data buffer for draw primitive. /// @@ -3866,7 +3866,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_data_from_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_instance_data_from_dynamic_vertex_buffer(Encoder* _this, DynamicVertexBufferHandle _handle, uint _startVertex, uint _num); - + /// /// Set number of instances for auto generated instances use in conjunction /// with gl_InstanceID. @@ -3875,7 +3875,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_instance_count", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_instance_count(Encoder* _this, uint _numInstances); - + /// /// Set texture stage for draw primitive. /// @@ -3887,7 +3887,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_texture", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_texture(Encoder* _this, byte _stage, UniformHandle _sampler, TextureHandle _handle, uint _flags); - + /// /// Submit an empty primitive for rendering. Uniforms and draw state /// will be applied but no geometry will be submitted. Useful in cases @@ -3901,7 +3901,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_touch", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_touch(Encoder* _this, ushort _id); - + /// /// Submit primitive for rendering. /// @@ -3913,7 +3913,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_submit", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_submit(Encoder* _this, ushort _id, ProgramHandle _program, uint _depth, byte _flags); - + /// /// Submit primitive with occlusion query for rendering. /// @@ -3926,7 +3926,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_submit_occlusion_query", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_submit_occlusion_query(Encoder* _this, ushort _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint _depth, byte _flags); - + /// /// Submit primitive for rendering with index and instance data info from /// indirect buffer. @@ -3943,7 +3943,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_submit_indirect", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_submit_indirect(Encoder* _this, ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint _start, uint _num, uint _depth, byte _flags); - + /// /// Submit primitive for rendering with index and instance data info and /// draw count from indirect buffers. @@ -3962,7 +3962,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_submit_indirect_count", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_submit_indirect_count(Encoder* _this, ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint _start, IndexBufferHandle _numHandle, uint _numIndex, uint _numMax, uint _depth, byte _flags); - + /// /// Set compute index buffer. /// @@ -3973,7 +3973,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_compute_index_buffer(Encoder* _this, byte _stage, IndexBufferHandle _handle, Access _access); - + /// /// Set compute vertex buffer. /// @@ -3984,7 +3984,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_compute_vertex_buffer(Encoder* _this, byte _stage, VertexBufferHandle _handle, Access _access); - + /// /// Set compute dynamic index buffer. /// @@ -3995,7 +3995,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_compute_dynamic_index_buffer(Encoder* _this, byte _stage, DynamicIndexBufferHandle _handle, Access _access); - + /// /// Set compute dynamic vertex buffer. /// @@ -4006,7 +4006,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_compute_dynamic_vertex_buffer(Encoder* _this, byte _stage, DynamicVertexBufferHandle _handle, Access _access); - + /// /// Set compute indirect buffer. /// @@ -4017,7 +4017,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_compute_indirect_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_compute_indirect_buffer(Encoder* _this, byte _stage, IndirectBufferHandle _handle, Access _access); - + /// /// Set compute image from texture. /// @@ -4030,7 +4030,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_set_image", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_set_image(Encoder* _this, byte _stage, TextureHandle _handle, byte _mip, Access _access, TextureFormat _format); - + /// /// Dispatch compute. /// @@ -4044,7 +4044,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_dispatch", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_dispatch(Encoder* _this, ushort _id, ProgramHandle _program, uint _numX, uint _numY, uint _numZ, byte _flags); - + /// /// Dispatch compute indirect. /// @@ -4058,7 +4058,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_dispatch_indirect", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_dispatch_indirect(Encoder* _this, ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint _start, uint _num, byte _flags); - + /// /// Discard previously set state for draw or compute call. /// @@ -4067,7 +4067,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_discard", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_discard(Encoder* _this, byte _flags); - + /// /// Blit 2D texture region between two 2D textures. /// @attention Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. @@ -4091,7 +4091,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_encoder_blit", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void encoder_blit(Encoder* _this, ushort _id, TextureHandle _dst, byte _dstMip, ushort _dstX, ushort _dstY, ushort _dstZ, TextureHandle _src, byte _srcMip, ushort _srcX, ushort _srcY, ushort _srcZ, ushort _width, ushort _height, ushort _depth); - + /// /// Request screen shot of window back buffer. /// @remarks @@ -4104,7 +4104,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_request_screen_shot", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void request_screen_shot(FrameBufferHandle _handle, [MarshalAs(UnmanagedType.LPStr)] string _filePath); - + /// /// Render frame. /// @attention `bgfx::renderFrame` is blocking call. It waits for @@ -4120,7 +4120,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_render_frame", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe RenderFrame render_frame(int _msecs); - + /// /// Set platform data. /// @warning Must be called before `bgfx::init`. @@ -4130,7 +4130,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_platform_data", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_platform_data(PlatformData* _data); - + /// /// Get internal data for interop. /// @attention It's expected you understand some bgfx internals before you @@ -4140,7 +4140,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_get_internal_data", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe InternalData* get_internal_data(); - + /// /// Override internal texture with externally created texture. Previously /// created internal texture will released. @@ -4154,7 +4154,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_override_internal_texture_ptr", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe UIntPtr override_internal_texture_ptr(TextureHandle _handle, UIntPtr _ptr); - + /// /// Override internal texture by creating new texture. Previously created /// internal texture will released. @@ -4174,7 +4174,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_override_internal_texture", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe UIntPtr override_internal_texture(TextureHandle _handle, ushort _width, ushort _height, byte _numMips, TextureFormat _format, ulong _flags); - + /// /// Sets a debug marker. This allows you to group graphics calls together for easy browsing in /// graphics debugging tools. @@ -4185,7 +4185,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_marker", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_marker([MarshalAs(UnmanagedType.LPStr)] string _name, int _len); - + /// /// Set render states for draw primitive. /// @remarks @@ -4205,7 +4205,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_state", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_state(ulong _state, uint _rgba); - + /// /// Set condition for rendering. /// @@ -4215,7 +4215,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_condition", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_condition(OcclusionQueryHandle _handle, bool _visible); - + /// /// Set stencil test state. /// @@ -4225,7 +4225,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_stencil", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_stencil(uint _fstencil, uint _bstencil); - + /// /// Set scissor for draw primitive. /// @remark @@ -4239,7 +4239,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_scissor", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe ushort set_scissor(ushort _x, ushort _y, ushort _width, ushort _height); - + /// /// Set scissor from cache for draw primitive. /// @remark @@ -4250,7 +4250,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_scissor_cached", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_scissor_cached(ushort _cache); - + /// /// Set model matrix for draw primitive. If it is not called, /// the model will be rendered with an identity model matrix. @@ -4261,7 +4261,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_transform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint set_transform(void* _mtx, ushort _num); - + /// /// Set model matrix from matrix cache for draw primitive. /// @@ -4271,7 +4271,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_transform_cached", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_transform_cached(uint _cache, ushort _num); - + /// /// Reserve matrices in internal matrix cache. /// @attention Pointer returned can be modified until `bgfx::frame` is called. @@ -4282,7 +4282,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_alloc_transform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe uint alloc_transform(Transform* _transform, ushort _num); - + /// /// Set shader uniform parameter for draw primitive. /// @@ -4293,7 +4293,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_uniform", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_uniform(UniformHandle _handle, void* _value, ushort _num); - + /// /// Set index buffer for draw primitive. /// @@ -4304,7 +4304,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_index_buffer(IndexBufferHandle _handle, uint _firstIndex, uint _numIndices); - + /// /// Set index buffer for draw primitive. /// @@ -4315,7 +4315,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_dynamic_index_buffer(DynamicIndexBufferHandle _handle, uint _firstIndex, uint _numIndices); - + /// /// Set index buffer for draw primitive. /// @@ -4326,7 +4326,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_transient_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_transient_index_buffer(TransientIndexBuffer* _tib, uint _firstIndex, uint _numIndices); - + /// /// Set vertex buffer for draw primitive. /// @@ -4338,7 +4338,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_vertex_buffer(byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -4351,7 +4351,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_vertex_buffer_with_layout(byte _stream, VertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set vertex buffer for draw primitive. /// @@ -4363,7 +4363,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_dynamic_vertex_buffer(byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -4376,7 +4376,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_dynamic_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_dynamic_vertex_buffer_with_layout(byte _stream, DynamicVertexBufferHandle _handle, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set vertex buffer for draw primitive. /// @@ -4388,7 +4388,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_transient_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_transient_vertex_buffer(byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices); - + /// /// Set vertex buffer for draw primitive. /// @@ -4401,7 +4401,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_transient_vertex_buffer_with_layout", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_transient_vertex_buffer_with_layout(byte _stream, TransientVertexBuffer* _tvb, uint _startVertex, uint _numVertices, VertexLayoutHandle _layoutHandle); - + /// /// Set number of vertices for auto generated vertices use in conjunction /// with gl_VertexID. @@ -4412,7 +4412,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_vertex_count", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_vertex_count(uint _numVertices); - + /// /// Set instance data buffer for draw primitive. /// @@ -4423,7 +4423,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_instance_data_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_instance_data_buffer(InstanceDataBuffer* _idb, uint _start, uint _num); - + /// /// Set instance data buffer for draw primitive. /// @@ -4434,7 +4434,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_instance_data_from_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_instance_data_from_vertex_buffer(VertexBufferHandle _handle, uint _startVertex, uint _num); - + /// /// Set instance data buffer for draw primitive. /// @@ -4445,7 +4445,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_instance_data_from_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_instance_data_from_dynamic_vertex_buffer(DynamicVertexBufferHandle _handle, uint _startVertex, uint _num); - + /// /// Set number of instances for auto generated instances use in conjunction /// with gl_InstanceID. @@ -4454,7 +4454,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_instance_count", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_instance_count(uint _numInstances); - + /// /// Set texture stage for draw primitive. /// @@ -4466,7 +4466,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_texture", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_texture(byte _stage, UniformHandle _sampler, TextureHandle _handle, uint _flags); - + /// /// Submit an empty primitive for rendering. Uniforms and draw state /// will be applied but no geometry will be submitted. @@ -4478,7 +4478,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_touch", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void touch(ushort _id); - + /// /// Submit primitive for rendering. /// @@ -4490,7 +4490,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_submit", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void submit(ushort _id, ProgramHandle _program, uint _depth, byte _flags); - + /// /// Submit primitive with occlusion query for rendering. /// @@ -4503,7 +4503,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_submit_occlusion_query", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void submit_occlusion_query(ushort _id, ProgramHandle _program, OcclusionQueryHandle _occlusionQuery, uint _depth, byte _flags); - + /// /// Submit primitive for rendering with index and instance data info from /// indirect buffer. @@ -4520,7 +4520,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_submit_indirect", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void submit_indirect(ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint _start, uint _num, uint _depth, byte _flags); - + /// /// Submit primitive for rendering with index and instance data info and /// draw count from indirect buffers. @@ -4539,7 +4539,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_submit_indirect_count", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void submit_indirect_count(ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint _start, IndexBufferHandle _numHandle, uint _numIndex, uint _numMax, uint _depth, byte _flags); - + /// /// Set compute index buffer. /// @@ -4550,7 +4550,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_compute_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_compute_index_buffer(byte _stage, IndexBufferHandle _handle, Access _access); - + /// /// Set compute vertex buffer. /// @@ -4561,7 +4561,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_compute_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_compute_vertex_buffer(byte _stage, VertexBufferHandle _handle, Access _access); - + /// /// Set compute dynamic index buffer. /// @@ -4572,7 +4572,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_compute_dynamic_index_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_compute_dynamic_index_buffer(byte _stage, DynamicIndexBufferHandle _handle, Access _access); - + /// /// Set compute dynamic vertex buffer. /// @@ -4583,7 +4583,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_compute_dynamic_vertex_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_compute_dynamic_vertex_buffer(byte _stage, DynamicVertexBufferHandle _handle, Access _access); - + /// /// Set compute indirect buffer. /// @@ -4594,7 +4594,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_compute_indirect_buffer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_compute_indirect_buffer(byte _stage, IndirectBufferHandle _handle, Access _access); - + /// /// Set compute image from texture. /// @@ -4607,7 +4607,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_set_image", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void set_image(byte _stage, TextureHandle _handle, byte _mip, Access _access, TextureFormat _format); - + /// /// Dispatch compute. /// @@ -4621,7 +4621,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_dispatch", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void dispatch(ushort _id, ProgramHandle _program, uint _numX, uint _numY, uint _numZ, byte _flags); - + /// /// Dispatch compute indirect. /// @@ -4635,7 +4635,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_dispatch_indirect", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void dispatch_indirect(ushort _id, ProgramHandle _program, IndirectBufferHandle _indirectHandle, uint _start, uint _num, byte _flags); - + /// /// Discard previously set state for draw or compute call. /// @@ -4644,7 +4644,7 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_discard", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void discard(byte _flags); - + /// /// Blit 2D texture region between two 2D textures. /// @attention Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. @@ -4668,6 +4668,6 @@ public struct VertexLayoutHandle { /// [DllImport(DllName, EntryPoint="bgfx_blit", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void blit(ushort _id, TextureHandle _dst, byte _dstMip, ushort _dstX, ushort _dstY, ushort _dstZ, TextureHandle _src, byte _srcMip, ushort _srcX, ushort _srcY, ushort _srcZ, ushort _width, ushort _height, ushort _depth); - + } } diff --git a/bindings/d/package.d b/bindings/d/package.d index 36ab49f6411..47e5f5292af 100644 --- a/bindings/d/package.d +++ b/bindings/d/package.d @@ -904,57 +904,57 @@ pragma(inline,true) nothrow @nogc pure @safe{ StateBlend_ blendFuncSeparate(StateBlend_ srcRGB, StateBlend_ dstRGB, StateBlend_ srcA, StateBlend_ dstA){ return (srcRGB | ((dstRGB) << 4)) | ((srcA | (dstA << 4)) << 8); } - + ///Blend equation separate. StateBlendEquation_ blendEquationSeparate(StateBlendEquation_ equationRGB, StateBlendEquation_ equationA){ return equationRGB | (equationA << 3); } - + ///Blend function. StateBlend_ blendFunc(StateBlend_ src, StateBlend_ dst){ return blendFuncSeparate(src, dst, src, dst); } - + ///Blend equation. StateBlendEquation_ blendEquation(StateBlendEquation_ equation){ return blendEquationSeparate(equation, equation); } - + ///Utility predefined blend modes. enum StateBlendFunc: StateBlend_{ ///Additive blending. add = blendFunc(StateBlend.one, StateBlend.one), - + ///Alpha blend. alpha = blendFunc(StateBlend.srcAlpha, StateBlend.invSrcAlpha), - + ///Selects darker color of blend. darken = blendFunc(StateBlend.one, StateBlend.one) | blendEquation(StateBlendEquation.min), - + ///Selects lighter color of blend. lighten = blendFunc(StateBlend.one, StateBlend.one) | blendEquation(StateBlendEquation.max), - + ///Multiplies colors. multiply = blendFunc(StateBlend.dstColor, StateBlend.zero), - + ///Opaque pixels will cover the pixels directly below them without any math or algorithm applied to them. normal = blendFunc(StateBlend.one, StateBlend.invSrcAlpha), - + ///Multiplies the inverse of the blend and base colors. screen = blendFunc(StateBlend.one, StateBlend.invSrcColor), - + ///Decreases the brightness of the base color based on the value of the blend color. linearBurn = blendFunc(StateBlend.dstColor, StateBlend.invDstColor) | blendEquation(StateBlendEquation.sub), } - + StateBlend_ blendFuncRTx(StateBlend_ src, StateBlend_ dst){ return cast(uint)(src >> StateBlend.shift) | (cast(uint)(dst >> StateBlend.shift) << 4); } - + StateBlend_ blendFuncRTxE(StateBlend_ src, StateBlend_ dst, StateBlendEquation_ equation){ return blendFuncRTx(src, dst) | (cast(uint)(equation >> StateBlendEquation.shift) << 8); } - + StateBlend_ blendFuncRT1(StateBlend_ src, StateBlend_ dst){ return blendFuncRTx(src, dst) << 0; } StateBlend_ blendFuncRT2(StateBlend_ src, StateBlend_ dst){ return blendFuncRTx(src, dst) << 11; } StateBlend_ blendFuncRT3(StateBlend_ src, StateBlend_ dst){ return blendFuncRTx(src, dst) << 22; } - + StateBlend_ blendFuncRT1E(StateBlend_ src, StateBlend_ dst, StateBlendEquation_ equation){ return blendFuncRTxE(src, dst, equation) << 0; } @@ -1000,9 +1000,9 @@ extern(C++, "bgfx") struct Caps{ uint transientVBSize; ///Maximum transient vertex buffer size. uint transientIBSize; ///Maximum transient index buffer size. } - + RendererType rendererType; ///Renderer backend type. See: `bgfx::RendererType` - + /** Supported functionality. @attention See `BGFX_CAPS_*` flags at https://bkaradzic.github.io/bgfx/bgfx.html#available-caps @@ -1015,7 +1015,7 @@ extern(C++, "bgfx") struct Caps{ ubyte numGPUs; ///Number of enumerated GPUs. GPU[4] gpu; ///Enumerated GPUs. Limits limits; ///Renderer runtime limits. - + /** Supported texture format capabilities flags: - `BGFX_CAPS_FORMAT_TEXTURE_NONE` - Texture format is not supported. @@ -1053,25 +1053,25 @@ extern(C++, "bgfx") struct InternalData{ ///Platform data. extern(C++, "bgfx") struct PlatformData{ void* ndt; ///Native display type (*nix specific). - + /** Native window handle. If `NULL`, bgfx will create a headless context/device, provided the rendering API supports it. */ void* nwh; - + /** GL context, D3D device, or Vulkan device. If `NULL`, bgfx will create context/device. */ void* context; - + /** GL back-buffer, or D3D render target view. If `NULL` bgfx will create back-buffer color surface. */ void* backBuffer; - + /** Backbuffer depth/stencil. If `NULL`, bgfx will create a back-buffer depth/stencil surface. @@ -1112,14 +1112,14 @@ extern(C++, "bgfx") struct Init{ return ret; }())); } - + /** Select rendering backend. When set to RendererType::Count a default rendering backend will be selected appropriate to the platform. See: `bgfx::RendererType` */ RendererType type; - + /** Vendor PCI ID. If set to `BGFX_PCI_ID_NONE`, discrete and integrated GPUs will be prioritised. @@ -1132,7 +1132,7 @@ extern(C++, "bgfx") struct Init{ - `BGFX_PCI_ID_MICROSOFT` - Microsoft adapter. */ ushort vendorID; - + /** Device ID. If set to 0 it will select first device, or device with matching ID. @@ -1144,13 +1144,13 @@ extern(C++, "bgfx") struct Init{ PlatformData platformData; ///Platform data. Resolution resolution; ///Backbuffer resolution and reset parameters. See: `bgfx::Resolution`. Limits limits; ///Configurable runtime limits parameters. - + /** Provide application specific callback interface. See: `bgfx::CallbackI` */ void* callback; - + /** Custom allocator. When a custom allocator is not specified, bgfx uses the CRT allocator. Bgfx assumes @@ -1329,14 +1329,14 @@ extern(C++, "bgfx") struct VertexLayout{ extern(D) mixin(joinFnBinds((){ FnBind[] ret = [ {q{void}, q{this}, q{}, ext: `C++`}, - + /** Start VertexLayout. Params: rendererType = Renderer backend type. See: `bgfx::RendererType` */ {q{VertexLayout*}, q{begin}, q{bgfx.fakeenum.RendererType.Enum rendererType=RendererType.noop}, ext: `C++`}, - + /** Add attribute to VertexLayout. Remarks: Must be called between begin/end. @@ -1353,7 +1353,7 @@ extern(C++, "bgfx") struct VertexLayout{ Unpacking code must be implemented inside vertex shader. */ {q{VertexLayout*}, q{add}, q{bgfx.fakeenum.Attrib.Enum attrib, ubyte num, bgfx.fakeenum.AttribType.Enum type, bool normalised=false, bool asInt=false}, ext: `C++`}, - + /** Decode attribute. Params: @@ -1364,14 +1364,14 @@ extern(C++, "bgfx") struct VertexLayout{ asInt = Attribute is packed as int. */ {q{void}, q{decode}, q{bgfx.fakeenum.Attrib.Enum attrib, ref ubyte num, ref bgfx.fakeenum.AttribType.Enum type, ref bool normalised, ref bool asInt}, ext: `C++`, memAttr: q{const}}, - + /** Skip `_num` bytes in vertex stream. Params: num = Number of bytes to skip. */ {q{VertexLayout*}, q{skip}, q{ubyte num}, ext: `C++`}, - + /** End VertexLayout. */ @@ -1397,7 +1397,7 @@ extern(C++, "bgfx") struct Encoder{ that _name is zero terminated string. */ {q{void}, q{setMarker}, q{const(char)* name, int len=int.max}, ext: `C++`}, - + /** Set render states for draw primitive. Remarks: @@ -1424,7 +1424,7 @@ extern(C++, "bgfx") struct Encoder{ `BGFX_STATE_BLEND_INV_FACTOR` blend modes. */ {q{void}, q{setState}, q{c_uint64 state, uint rgba=0}, ext: `C++`}, - + /** Set condition for rendering. Params: @@ -1432,7 +1432,7 @@ extern(C++, "bgfx") struct Encoder{ visible = Render if occlusion query is visible. */ {q{void}, q{setCondition}, q{OcclusionQueryHandle handle, bool visible}, ext: `C++`}, - + /** Set stencil test state. Params: @@ -1441,7 +1441,7 @@ extern(C++, "bgfx") struct Encoder{ _fstencil is applied to both front and back facing primitives. */ {q{void}, q{setStencil}, q{uint fStencil, uint bStencil=Stencil.none}, ext: `C++`}, - + /** Set scissor for draw primitive. Remarks: @@ -1453,7 +1453,7 @@ extern(C++, "bgfx") struct Encoder{ height = Height of view scissor region. */ {q{ushort}, q{setScissor}, q{ushort x, ushort y, ushort width, ushort height}, ext: `C++`}, - + /** Set scissor from cache for draw primitive. Remarks: @@ -1462,7 +1462,7 @@ extern(C++, "bgfx") struct Encoder{ cache = Index in scissor cache. */ {q{void}, q{setScissor}, q{ushort cache=ushort.max}, ext: `C++`}, - + /** Set model matrix for draw primitive. If it is not called, the model will be rendered with an identity model matrix. @@ -1471,7 +1471,7 @@ extern(C++, "bgfx") struct Encoder{ num = Number of matrices in array. */ {q{uint}, q{setTransform}, q{const(void)* mtx, ushort num=1}, ext: `C++`}, - + /** Set model matrix from matrix cache for draw primitive. Params: @@ -1479,7 +1479,7 @@ extern(C++, "bgfx") struct Encoder{ num = Number of matrices from cache. */ {q{void}, q{setTransform}, q{uint cache, ushort num=1}, ext: `C++`}, - + /** Reserve matrices in internal matrix cache. Attention: Pointer returned can be modified until `bgfx::frame` is called. @@ -1488,7 +1488,7 @@ extern(C++, "bgfx") struct Encoder{ num = Number of matrices. */ {q{uint}, q{allocTransform}, q{Transform* transform, ushort num}, ext: `C++`}, - + /** Set shader uniform parameter for draw primitive. Params: @@ -1498,14 +1498,14 @@ extern(C++, "bgfx") struct Encoder{ use the _num passed on uniform creation. */ {q{void}, q{setUniform}, q{UniformHandle handle, const(void)* value, ushort num=1}, ext: `C++`}, - + /** Set index buffer for draw primitive. Params: handle = Index buffer. */ {q{void}, q{setIndexBuffer}, q{IndexBufferHandle handle}, ext: `C++`}, - + /** Set index buffer for draw primitive. Params: @@ -1514,14 +1514,14 @@ extern(C++, "bgfx") struct Encoder{ numIndices = Number of indices to render. */ {q{void}, q{setIndexBuffer}, q{IndexBufferHandle handle, uint firstIndex, uint numIndices}, ext: `C++`}, - + /** Set index buffer for draw primitive. Params: handle = Dynamic index buffer. */ {q{void}, q{setIndexBuffer}, q{DynamicIndexBufferHandle handle}, ext: `C++`}, - + /** Set index buffer for draw primitive. Params: @@ -1530,14 +1530,14 @@ extern(C++, "bgfx") struct Encoder{ numIndices = Number of indices to render. */ {q{void}, q{setIndexBuffer}, q{DynamicIndexBufferHandle handle, uint firstIndex, uint numIndices}, ext: `C++`}, - + /** Set index buffer for draw primitive. Params: tib = Transient index buffer. */ {q{void}, q{setIndexBuffer}, q{const(TransientIndexBuffer)* tib}, ext: `C++`}, - + /** Set index buffer for draw primitive. Params: @@ -1546,7 +1546,7 @@ extern(C++, "bgfx") struct Encoder{ numIndices = Number of indices to render. */ {q{void}, q{setIndexBuffer}, q{const(TransientIndexBuffer)* tib, uint firstIndex, uint numIndices}, ext: `C++`}, - + /** Set vertex buffer for draw primitive. Params: @@ -1554,7 +1554,7 @@ extern(C++, "bgfx") struct Encoder{ handle = Vertex buffer. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, VertexBufferHandle handle}, ext: `C++`}, - + /** Set vertex buffer for draw primitive. Params: @@ -1567,7 +1567,7 @@ extern(C++, "bgfx") struct Encoder{ of vertex buffer will be used. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, VertexBufferHandle handle, uint startVertex, uint numVertices, VertexLayoutHandle layoutHandle=invalidHandle!VertexLayoutHandle}, ext: `C++`}, - + /** Set vertex buffer for draw primitive. Params: @@ -1576,7 +1576,7 @@ extern(C++, "bgfx") struct Encoder{ */ {q{void}, q{setVertexBuffer}, q{ubyte stream, DynamicVertexBufferHandle handle}, ext: `C++`}, {q{void}, q{setVertexBuffer}, q{ubyte stream, DynamicVertexBufferHandle handle, uint startVertex, uint numVertices, VertexLayoutHandle layoutHandle=invalidHandle!VertexLayoutHandle}, ext: `C++`}, - + /** Set vertex buffer for draw primitive. Params: @@ -1584,7 +1584,7 @@ extern(C++, "bgfx") struct Encoder{ tvb = Transient vertex buffer. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, const(TransientVertexBuffer)* tvb}, ext: `C++`}, - + /** Set vertex buffer for draw primitive. Params: @@ -1597,7 +1597,7 @@ extern(C++, "bgfx") struct Encoder{ of vertex buffer will be used. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, const(TransientVertexBuffer)* tvb, uint startVertex, uint numVertices, VertexLayoutHandle layoutHandle=invalidHandle!VertexLayoutHandle}, ext: `C++`}, - + /** Set number of vertices for auto generated vertices use in conjunction with gl_VertexID. @@ -1606,14 +1606,14 @@ extern(C++, "bgfx") struct Encoder{ numVertices = Number of vertices. */ {q{void}, q{setVertexCount}, q{uint numVertices}, ext: `C++`}, - + /** Set instance data buffer for draw primitive. Params: idb = Transient instance data buffer. */ {q{void}, q{setInstanceDataBuffer}, q{const(InstanceDataBuffer)* idb}, ext: `C++`}, - + /** Set instance data buffer for draw primitive. Params: @@ -1622,7 +1622,7 @@ extern(C++, "bgfx") struct Encoder{ num = Number of data instances. */ {q{void}, q{setInstanceDataBuffer}, q{const(InstanceDataBuffer)* idb, uint start, uint num}, ext: `C++`}, - + /** Set instance data buffer for draw primitive. Params: @@ -1631,7 +1631,7 @@ extern(C++, "bgfx") struct Encoder{ num = Number of data instances. */ {q{void}, q{setInstanceDataBuffer}, q{VertexBufferHandle handle, uint startVertex, uint num}, ext: `C++`}, - + /** Set instance data buffer for draw primitive. Params: @@ -1640,14 +1640,14 @@ extern(C++, "bgfx") struct Encoder{ num = Number of data instances. */ {q{void}, q{setInstanceDataBuffer}, q{DynamicVertexBufferHandle handle, uint startVertex, uint num}, ext: `C++`}, - + /** Set number of instances for auto generated instances use in conjunction with gl_InstanceID. Attention: Availability depends on: `BGFX_CAPS_VERTEX_ID`. */ {q{void}, q{setInstanceCount}, q{uint numInstances}, ext: `C++`}, - + /** Set texture stage for draw primitive. Params: @@ -1662,7 +1662,7 @@ extern(C++, "bgfx") struct Encoder{ sampling. */ {q{void}, q{setTexture}, q{ubyte stage, UniformHandle sampler, TextureHandle handle, uint flags=uint.max}, ext: `C++`}, - + /** Submit an empty primitive for rendering. Uniforms and draw state will be applied but no geometry will be submitted. Useful in cases @@ -1674,7 +1674,7 @@ extern(C++, "bgfx") struct Encoder{ id = View id. */ {q{void}, q{touch}, q{ViewID id}, ext: `C++`}, - + /** Submit primitive for rendering. Params: @@ -1684,7 +1684,7 @@ extern(C++, "bgfx") struct Encoder{ flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{submit}, q{ViewID id, ProgramHandle program, uint depth=0, ubyte flags=Discard.all}, ext: `C++`}, - + /** Submit primitive with occlusion query for rendering. Params: @@ -1695,7 +1695,7 @@ extern(C++, "bgfx") struct Encoder{ flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{submit}, q{ViewID id, ProgramHandle program, OcclusionQueryHandle occlusionQuery, uint depth=0, ubyte flags=Discard.all}, ext: `C++`}, - + /** Submit primitive for rendering with index and instance data info from indirect buffer. @@ -1710,7 +1710,7 @@ extern(C++, "bgfx") struct Encoder{ flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{submit}, q{ViewID id, ProgramHandle program, IndirectBufferHandle indirectHandle, uint start=0, uint num=1, uint depth=0, ubyte flags=Discard.all}, ext: `C++`}, - + /** Submit primitive for rendering with index and instance data info and draw count from indirect buffers. @@ -1728,7 +1728,7 @@ extern(C++, "bgfx") struct Encoder{ flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{submit}, q{ViewID id, ProgramHandle program, IndirectBufferHandle indirectHandle, uint start, IndexBufferHandle numHandle, uint numIndex=0, uint numMax=uint.max, uint depth=0, ubyte flags=Discard.all}, ext: `C++`}, - + /** Set compute index buffer. Params: @@ -1737,7 +1737,7 @@ extern(C++, "bgfx") struct Encoder{ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, IndexBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++`}, - + /** Set compute vertex buffer. Params: @@ -1746,7 +1746,7 @@ extern(C++, "bgfx") struct Encoder{ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, VertexBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++`}, - + /** Set compute dynamic index buffer. Params: @@ -1755,7 +1755,7 @@ extern(C++, "bgfx") struct Encoder{ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, DynamicIndexBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++`}, - + /** Set compute dynamic vertex buffer. Params: @@ -1764,7 +1764,7 @@ extern(C++, "bgfx") struct Encoder{ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, DynamicVertexBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++`}, - + /** Set compute indirect buffer. Params: @@ -1773,7 +1773,7 @@ extern(C++, "bgfx") struct Encoder{ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, IndirectBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++`}, - + /** Set compute image from texture. Params: @@ -1784,7 +1784,7 @@ extern(C++, "bgfx") struct Encoder{ format = Texture format. See: `TextureFormat::Enum`. */ {q{void}, q{setImage}, q{ubyte stage, TextureHandle handle, ubyte mip, bgfx.fakeenum.Access.Enum access, bgfx.fakeenum.TextureFormat.Enum format=TextureFormat.count}, ext: `C++`}, - + /** Dispatch compute. Params: @@ -1796,7 +1796,7 @@ extern(C++, "bgfx") struct Encoder{ flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{dispatch}, q{ViewID id, ProgramHandle program, uint numX=1, uint numY=1, uint numZ=1, ubyte flags=Discard.all}, ext: `C++`}, - + /** Dispatch compute indirect. Params: @@ -1808,14 +1808,14 @@ extern(C++, "bgfx") struct Encoder{ flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{dispatch}, q{ViewID id, ProgramHandle program, IndirectBufferHandle indirectHandle, uint start=0, uint num=1, ubyte flags=Discard.all}, ext: `C++`}, - + /** Discard previously set state for draw or compute call. Params: flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{discard}, q{ubyte flags=Discard.all}, ext: `C++`}, - + /** Blit 2D texture region between two 2D textures. Attention: Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. @@ -1832,7 +1832,7 @@ extern(C++, "bgfx") struct Encoder{ height = Height of region. */ {q{void}, q{blit}, q{ViewID id, TextureHandle dst, ushort dstX, ushort dstY, TextureHandle src, ushort srcX=0, ushort srcY=0, ushort width=ushort.max, ushort height=ushort.max}, ext: `C++`}, - + /** Blit 2D texture region between two 2D textures. Attention: Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. @@ -1877,7 +1877,7 @@ mixin(joinFnBinds((){ index = Vertex index that will be modified. */ {q{void}, q{vertexPack}, q{const(float)* input, bool inputNormalised, bgfx.fakeenum.Attrib.Enum attr, ref const VertexLayout layout, void* data, uint index=0}, ext: `C++, "bgfx"`}, - + /** * Unpack vertex attribute from vertex stream format. Params: @@ -1888,7 +1888,7 @@ mixin(joinFnBinds((){ index = Vertex index that will be unpacked. */ {q{void}, q{vertexUnpack}, q{float* output, bgfx.fakeenum.Attrib.Enum attr, ref const VertexLayout layout, const(void)* data, uint index=0}, ext: `C++, "bgfx"`}, - + /** * Converts vertex stream data from one vertex stream format to another. Params: @@ -1899,7 +1899,7 @@ mixin(joinFnBinds((){ num = Number of vertices to convert from source to destination. */ {q{void}, q{vertexConvert}, q{ref const VertexLayout dstLayout, void* dstData, ref const VertexLayout srcLayout, const(void)* srcData, uint num=1}, ext: `C++, "bgfx"`}, - + /** * Weld vertices. Params: @@ -1912,7 +1912,7 @@ mixin(joinFnBinds((){ epsilon = Error tolerance for vertex position comparison. */ {q{uint}, q{weldVertices}, q{void* output, ref const VertexLayout layout, const(void)* data, uint num, bool index32, float epsilon=0.001f}, ext: `C++, "bgfx"`}, - + /** * Convert index buffer for use with different primitive topologies. Params: @@ -1927,7 +1927,7 @@ mixin(joinFnBinds((){ index32 = Set to `true` if input indices are 32-bit. */ {q{uint}, q{topologyConvert}, q{bgfx.fakeenum.TopologyConvert.Enum conversion, void* dst, uint dstSize, const(void)* indices, uint numIndices, bool index32}, ext: `C++, "bgfx"`}, - + /** * Sort indices. Params: @@ -1947,7 +1947,7 @@ mixin(joinFnBinds((){ index32 = Set to `true` if input indices are 32-bit. */ {q{void}, q{topologySortTriList}, q{bgfx.fakeenum.TopologySort.Enum sort, void* dst, uint dstSize, const(float)* dir, const(float)* pos, const(void)* vertices, uint stride, const(void)* indices, uint numIndices, bool index32}, ext: `C++, "bgfx"`}, - + /** * Returns supported backend API renderers. Params: @@ -1955,26 +1955,26 @@ mixin(joinFnBinds((){ enum_ = Array where supported renderers will be written. */ {q{ubyte}, q{getSupportedRenderers}, q{ubyte max=0, bgfx.fakeenum.RendererType.Enum* enum_=null}, ext: `C++, "bgfx"`}, - + /** * Returns name of renderer. Params: type = Renderer backend type. See: `bgfx::RendererType` */ {q{const(char)*}, q{getRendererName}, q{bgfx.fakeenum.RendererType.Enum type}, ext: `C++, "bgfx"`}, - + /** * Initialize the bgfx library. Params: init = Initialization parameters. See: `bgfx::Init` for more info. */ {q{bool}, q{init}, q{ref const Init init}, ext: `C++, "bgfx"`}, - + /** * Shutdown bgfx library. */ {q{void}, q{shutdown}, q{}, ext: `C++, "bgfx"`}, - + /** * Reset graphic settings and back-buffer size. * Attention: This call doesn’t change the window size, it just resizes @@ -1997,7 +1997,7 @@ mixin(joinFnBinds((){ format = Texture format. See: `TextureFormat::Enum`. */ {q{void}, q{reset}, q{uint width, uint height, uint flags=Reset.none, bgfx.fakeenum.TextureFormat.Enum format=TextureFormat.count}, ext: `C++, "bgfx"`}, - + /** * Advance to next frame. When using multithreaded renderer, this call * just swaps internal buffers, kicks render thread, and returns. In @@ -2006,34 +2006,34 @@ mixin(joinFnBinds((){ capture = Capture frame with graphics debugger. */ {q{uint}, q{frame}, q{bool capture=false}, ext: `C++, "bgfx"`}, - + /** * Returns current renderer backend API type. * Remarks: * Library must be initialized. */ {q{RendererType}, q{getRendererType}, q{}, ext: `C++, "bgfx"`}, - + /** * Returns renderer capabilities. * Remarks: * Library must be initialized. */ {q{const(Caps)*}, q{getCaps}, q{}, ext: `C++, "bgfx"`}, - + /** * Returns performance counters. * Attention: Pointer returned is valid until `bgfx::frame` is called. */ {q{const(Stats)*}, q{getStats}, q{}, ext: `C++, "bgfx"`}, - + /** * Allocate buffer to pass to bgfx calls. Data will be freed inside bgfx. Params: size = Size to allocate. */ {q{const(Memory)*}, q{alloc}, q{uint size}, ext: `C++, "bgfx"`}, - + /** * Allocate buffer and copy data into it. Data will be freed inside bgfx. Params: @@ -2041,7 +2041,7 @@ mixin(joinFnBinds((){ size = Size of data to be copied. */ {q{const(Memory)*}, q{copy}, q{const(void)* data, uint size}, ext: `C++, "bgfx"`}, - + /** * Make reference to data to pass to bgfx. Unlike `bgfx::alloc`, this call * doesn't allocate memory for data. It just copies the _data pointer. You @@ -2057,7 +2057,7 @@ mixin(joinFnBinds((){ userData = User data to be passed to callback function. */ {q{const(Memory)*}, q{makeRef}, q{const(void)* data, uint size, ReleaseFn releaseFn=null, void* userData=null}, ext: `C++, "bgfx"`}, - + /** * Set debug flags. Params: @@ -2072,7 +2072,7 @@ mixin(joinFnBinds((){ primitives will be rendered as lines. */ {q{void}, q{setDebug}, q{uint debug_}, ext: `C++, "bgfx"`}, - + /** * Clear internal debug text buffer. Params: @@ -2080,7 +2080,7 @@ mixin(joinFnBinds((){ small = Default 8x16 or 8x8 font. */ {q{void}, q{dbgTextClear}, q{ubyte attr=0, bool small=false}, ext: `C++, "bgfx"`}, - + /** * Print formatted data to internal debug text character-buffer (VGA-compatible text mode). Params: @@ -2091,7 +2091,7 @@ mixin(joinFnBinds((){ format = `printf` style format. */ {q{void}, q{dbgTextPrintf}, q{ushort x, ushort y, ubyte attr, const(char)* format, ...}, ext: `C++, "bgfx"`}, - + /** * Print formatted data from variable argument list to internal debug text character-buffer (VGA-compatible text mode). Params: @@ -2103,7 +2103,7 @@ mixin(joinFnBinds((){ argList = Variable arguments list for format string. */ {q{void}, q{dbgTextPrintfVargs}, q{ushort x, ushort y, ubyte attr, const(char)* format, va_list argList}, ext: `C++, "bgfx"`}, - + /** * Draw image into internal debug text buffer. Params: @@ -2115,7 +2115,7 @@ mixin(joinFnBinds((){ pitch = Image pitch in bytes. */ {q{void}, q{dbgTextImage}, q{ushort x, ushort y, ushort width, ushort height, const(void)* data, ushort pitch}, ext: `C++, "bgfx"`}, - + /** * Create static index buffer. Params: @@ -2134,7 +2134,7 @@ mixin(joinFnBinds((){ index buffers. */ {q{IndexBufferHandle}, q{createIndexBuffer}, q{const(Memory)* mem, ushort flags=Buffer.none}, ext: `C++, "bgfx"`}, - + /** * Set static index buffer debug name. Params: @@ -2144,28 +2144,28 @@ mixin(joinFnBinds((){ that _name is zero terminated string. */ {q{void}, q{setName}, q{IndexBufferHandle handle, const(char)* name, int len=int.max}, ext: `C++, "bgfx"`}, - + /** * Destroy static index buffer. Params: handle = Static index buffer handle. */ {q{void}, q{destroy}, q{IndexBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Create vertex layout. Params: layout = Vertex layout. */ {q{VertexLayoutHandle}, q{createVertexLayout}, q{ref const VertexLayout layout}, ext: `C++, "bgfx"`}, - + /** * Destroy vertex layout. Params: layoutHandle = Vertex layout handle. */ {q{void}, q{destroy}, q{VertexLayoutHandle layoutHandle}, ext: `C++, "bgfx"`}, - + /** * Create static vertex buffer. Params: @@ -2183,7 +2183,7 @@ mixin(joinFnBinds((){ - `BGFX_BUFFER_INDEX32` - Buffer is using 32-bit indices. This flag has effect only on index buffers. */ {q{VertexBufferHandle}, q{createVertexBuffer}, q{const(Memory)* mem, ref const VertexLayout layout, ushort flags=Buffer.none}, ext: `C++, "bgfx"`}, - + /** * Set static vertex buffer debug name. Params: @@ -2193,14 +2193,14 @@ mixin(joinFnBinds((){ that _name is zero terminated string. */ {q{void}, q{setName}, q{VertexBufferHandle handle, const(char)* name, int len=int.max}, ext: `C++, "bgfx"`}, - + /** * Destroy static vertex buffer. Params: handle = Static vertex buffer handle. */ {q{void}, q{destroy}, q{VertexBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Create empty dynamic index buffer. Params: @@ -2219,7 +2219,7 @@ mixin(joinFnBinds((){ index buffers. */ {q{DynamicIndexBufferHandle}, q{createDynamicIndexBuffer}, q{uint num, ushort flags=Buffer.none}, ext: `C++, "bgfx"`}, - + /** * Create a dynamic index buffer and initialize it. Params: @@ -2238,7 +2238,7 @@ mixin(joinFnBinds((){ index buffers. */ {q{DynamicIndexBufferHandle}, q{createDynamicIndexBuffer}, q{const(Memory)* mem, ushort flags=Buffer.none}, ext: `C++, "bgfx"`}, - + /** * Update dynamic index buffer. Params: @@ -2247,14 +2247,14 @@ mixin(joinFnBinds((){ mem = Index buffer data. */ {q{void}, q{update}, q{DynamicIndexBufferHandle handle, uint startIndex, const(Memory)* mem}, ext: `C++, "bgfx"`}, - + /** * Destroy dynamic index buffer. Params: handle = Dynamic index buffer handle. */ {q{void}, q{destroy}, q{DynamicIndexBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Create empty dynamic vertex buffer. Params: @@ -2274,7 +2274,7 @@ mixin(joinFnBinds((){ index buffers. */ {q{DynamicVertexBufferHandle}, q{createDynamicVertexBuffer}, q{uint num, ref const VertexLayout layout, ushort flags=Buffer.none}, ext: `C++, "bgfx"`}, - + /** * Create dynamic vertex buffer and initialize it. Params: @@ -2294,7 +2294,7 @@ mixin(joinFnBinds((){ index buffers. */ {q{DynamicVertexBufferHandle}, q{createDynamicVertexBuffer}, q{const(Memory)* mem, ref const VertexLayout layout, ushort flags=Buffer.none}, ext: `C++, "bgfx"`}, - + /** * Update dynamic vertex buffer. Params: @@ -2303,14 +2303,14 @@ mixin(joinFnBinds((){ mem = Vertex buffer data. */ {q{void}, q{update}, q{DynamicVertexBufferHandle handle, uint startVertex, const(Memory)* mem}, ext: `C++, "bgfx"`}, - + /** * Destroy dynamic vertex buffer. Params: handle = Dynamic vertex buffer handle. */ {q{void}, q{destroy}, q{DynamicVertexBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Returns number of requested or maximum available indices. Params: @@ -2318,7 +2318,7 @@ mixin(joinFnBinds((){ index32 = Set to `true` if input indices will be 32-bit. */ {q{uint}, q{getAvailTransientIndexBuffer}, q{uint num, bool index32=false}, ext: `C++, "bgfx"`}, - + /** * Returns number of requested or maximum available vertices. Params: @@ -2326,7 +2326,7 @@ mixin(joinFnBinds((){ layout = Vertex layout. */ {q{uint}, q{getAvailTransientVertexBuffer}, q{uint num, ref const VertexLayout layout}, ext: `C++, "bgfx"`}, - + /** * Returns number of requested or maximum available instance buffer slots. Params: @@ -2334,7 +2334,7 @@ mixin(joinFnBinds((){ stride = Stride per instance. */ {q{uint}, q{getAvailInstanceDataBuffer}, q{uint num, ushort stride}, ext: `C++, "bgfx"`}, - + /** * Allocate transient index buffer. Params: @@ -2345,7 +2345,7 @@ mixin(joinFnBinds((){ index32 = Set to `true` if input indices will be 32-bit. */ {q{void}, q{allocTransientIndexBuffer}, q{TransientIndexBuffer* tib, uint num, bool index32=false}, ext: `C++, "bgfx"`}, - + /** * Allocate transient vertex buffer. Params: @@ -2356,7 +2356,7 @@ mixin(joinFnBinds((){ layout = Vertex layout. */ {q{void}, q{allocTransientVertexBuffer}, q{TransientVertexBuffer* tvb, uint num, ref const VertexLayout layout}, ext: `C++, "bgfx"`}, - + /** * Check for required space and allocate transient vertex and index * buffers. If both space requirements are satisfied function returns @@ -2374,7 +2374,7 @@ mixin(joinFnBinds((){ index32 = Set to `true` if input indices will be 32-bit. */ {q{bool}, q{allocTransientBuffers}, q{TransientVertexBuffer* tvb, ref const VertexLayout layout, uint numVertices, TransientIndexBuffer* tib, uint numIndices, bool index32=false}, ext: `C++, "bgfx"`}, - + /** * Allocate instance data buffer. Params: @@ -2385,21 +2385,21 @@ mixin(joinFnBinds((){ stride = Instance stride. Must be multiple of 16. */ {q{void}, q{allocInstanceDataBuffer}, q{InstanceDataBuffer* idb, uint num, ushort stride}, ext: `C++, "bgfx"`}, - + /** * Create draw indirect buffer. Params: num = Number of indirect calls. */ {q{IndirectBufferHandle}, q{createIndirectBuffer}, q{uint num}, ext: `C++, "bgfx"`}, - + /** * Destroy draw indirect buffer. Params: handle = Indirect buffer handle. */ {q{void}, q{destroy}, q{IndirectBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Create shader from memory buffer. * Remarks: @@ -2408,7 +2408,7 @@ mixin(joinFnBinds((){ mem = Shader binary. */ {q{ShaderHandle}, q{createShader}, q{const(Memory)* mem}, ext: `C++, "bgfx"`}, - + /** * Returns the number of uniforms and uniform handles used inside a shader. * Remarks: @@ -2419,7 +2419,7 @@ mixin(joinFnBinds((){ max = Maximum capacity of array. */ {q{ushort}, q{getShaderUniforms}, q{ShaderHandle handle, UniformHandle* uniforms=null, ushort max=0}, ext: `C++, "bgfx"`}, - + /** * Set shader debug name. Params: @@ -2429,7 +2429,7 @@ mixin(joinFnBinds((){ that _name is zero terminated string). */ {q{void}, q{setName}, q{ShaderHandle handle, const(char)* name, int len=int.max}, ext: `C++, "bgfx"`}, - + /** * Destroy shader. * Remarks: Once a shader program is created with _handle, @@ -2438,7 +2438,7 @@ mixin(joinFnBinds((){ handle = Shader handle. */ {q{void}, q{destroy}, q{ShaderHandle handle}, ext: `C++, "bgfx"`}, - + /** * Create program with vertex and fragment shaders. Params: @@ -2447,7 +2447,7 @@ mixin(joinFnBinds((){ destroyShaders = If true, shaders will be destroyed when program is destroyed. */ {q{ProgramHandle}, q{createProgram}, q{ShaderHandle vsh, ShaderHandle fsh, bool destroyShaders=false}, ext: `C++, "bgfx"`}, - + /** * Create program with compute shader. Params: @@ -2455,14 +2455,14 @@ mixin(joinFnBinds((){ destroyShaders = If true, shaders will be destroyed when program is destroyed. */ {q{ProgramHandle}, q{createProgram}, q{ShaderHandle csh, bool destroyShaders=false}, ext: `C++, "bgfx"`}, - + /** * Destroy program. Params: handle = Program handle. */ {q{void}, q{destroy}, q{ProgramHandle handle}, ext: `C++, "bgfx"`}, - + /** * Validate texture parameters. Params: @@ -2473,7 +2473,7 @@ mixin(joinFnBinds((){ flags = Texture flags. See `BGFX_TEXTURE_*`. */ {q{bool}, q{isTextureValid}, q{ushort depth, bool cubeMap, ushort numLayers, bgfx.fakeenum.TextureFormat.Enum format, c_uint64 flags}, ext: `C++, "bgfx"`}, - + /** * Validate frame buffer parameters. Params: @@ -2481,7 +2481,7 @@ mixin(joinFnBinds((){ attachment = Attachment texture info. See: `bgfx::Attachment`. */ {q{bool}, q{isFrameBufferValid}, q{ubyte num, const(Attachment)* attachment}, ext: `C++, "bgfx"`}, - + /** * Calculate amount of memory required for texture. Params: @@ -2495,7 +2495,7 @@ mixin(joinFnBinds((){ format = Texture format. See: `TextureFormat::Enum`. */ {q{void}, q{calcTextureSize}, q{ref TextureInfo info, ushort width, ushort height, ushort depth, bool cubeMap, bool hasMIPs, ushort numLayers, bgfx.fakeenum.TextureFormat.Enum format}, ext: `C++, "bgfx"`}, - + /** * Create texture from memory buffer. Params: @@ -2510,7 +2510,7 @@ mixin(joinFnBinds((){ info = When non-`NULL` is specified it returns parsed texture information. */ {q{TextureHandle}, q{createTexture}, q{const(Memory)* mem, c_uint64 flags=Texture.none|Sampler.none, ubyte skip=0, TextureInfo* info=null}, ext: `C++, "bgfx"`}, - + /** * Create 2D texture. Params: @@ -2531,7 +2531,7 @@ mixin(joinFnBinds((){ 1, expected memory layout is texture and all mips together for each array element. */ {q{TextureHandle}, q{createTexture2D}, q{ushort width, ushort height, bool hasMIPs, ushort numLayers, bgfx.fakeenum.TextureFormat.Enum format, c_uint64 flags=Texture.none|Sampler.none, const(Memory)* mem=null}, ext: `C++, "bgfx"`}, - + /** * Create texture with size based on back-buffer ratio. Texture will maintain ratio * if back buffer resolution changes. @@ -2549,7 +2549,7 @@ mixin(joinFnBinds((){ sampling. */ {q{TextureHandle}, q{createTexture2D}, q{bgfx.fakeenum.BackbufferRatio.Enum ratio, bool hasMIPs, ushort numLayers, bgfx.fakeenum.TextureFormat.Enum format, c_uint64 flags=Texture.none|Sampler.none}, ext: `C++, "bgfx"`}, - + /** * Create 3D texture. Params: @@ -2569,7 +2569,7 @@ mixin(joinFnBinds((){ 1, expected memory layout is texture and all mips together for each array element. */ {q{TextureHandle}, q{createTexture3D}, q{ushort width, ushort height, ushort depth, bool hasMIPs, bgfx.fakeenum.TextureFormat.Enum format, c_uint64 flags=Texture.none|Sampler.none, const(Memory)* mem=null}, ext: `C++, "bgfx"`}, - + /** * Create Cube texture. Params: @@ -2589,7 +2589,7 @@ mixin(joinFnBinds((){ 1, expected memory layout is texture and all mips together for each array element. */ {q{TextureHandle}, q{createTextureCube}, q{ushort size, bool hasMIPs, ushort numLayers, bgfx.fakeenum.TextureFormat.Enum format, c_uint64 flags=Texture.none|Sampler.none, const(Memory)* mem=null}, ext: `C++, "bgfx"`}, - + /** * Update 2D texture. * Attention: It's valid to update only mutable texture. See `bgfx::createTexture2D` for more info. @@ -2606,7 +2606,7 @@ mixin(joinFnBinds((){ UINT16_MAX, it will be calculated internally based on _width. */ {q{void}, q{updateTexture2D}, q{TextureHandle handle, ushort layer, ubyte mip, ushort x, ushort y, ushort width, ushort height, const(Memory)* mem, ushort pitch=ushort.max}, ext: `C++, "bgfx"`}, - + /** * Update 3D texture. * Attention: It's valid to update only mutable texture. See `bgfx::createTexture3D` for more info. @@ -2622,7 +2622,7 @@ mixin(joinFnBinds((){ mem = Texture update data. */ {q{void}, q{updateTexture3D}, q{TextureHandle handle, ubyte mip, ushort x, ushort y, ushort z, ushort width, ushort height, ushort depth, const(Memory)* mem}, ext: `C++, "bgfx"`}, - + /** * Update Cube texture. * Attention: It's valid to update only mutable texture. See `bgfx::createTextureCube` for more info. @@ -2657,7 +2657,7 @@ mixin(joinFnBinds((){ UINT16_MAX, it will be calculated internally based on _width. */ {q{void}, q{updateTextureCube}, q{TextureHandle handle, ushort layer, ubyte side, ubyte mip, ushort x, ushort y, ushort width, ushort height, const(Memory)* mem, ushort pitch=ushort.max}, ext: `C++, "bgfx"`}, - + /** * Read back texture content. * Attention: Texture must be created with `BGFX_TEXTURE_READ_BACK` flag. @@ -2668,7 +2668,7 @@ mixin(joinFnBinds((){ mip = Mip level. */ {q{uint}, q{readTexture}, q{TextureHandle handle, void* data, ubyte mip=0}, ext: `C++, "bgfx"`}, - + /** * Set texture debug name. Params: @@ -2678,7 +2678,7 @@ mixin(joinFnBinds((){ that _name is zero terminated string. */ {q{void}, q{setName}, q{TextureHandle handle, const(char)* name, int len=int.max}, ext: `C++, "bgfx"`}, - + /** * Returns texture direct access pointer. * Attention: Availability depends on: `BGFX_CAPS_TEXTURE_DIRECT_ACCESS`. This feature @@ -2687,14 +2687,14 @@ mixin(joinFnBinds((){ handle = Texture handle. */ {q{void*}, q{getDirectAccessPtr}, q{TextureHandle handle}, ext: `C++, "bgfx"`}, - + /** * Destroy texture. Params: handle = Texture handle. */ {q{void}, q{destroy}, q{TextureHandle handle}, ext: `C++, "bgfx"`}, - + /** * Create frame buffer (simple). Params: @@ -2709,7 +2709,7 @@ mixin(joinFnBinds((){ sampling. */ {q{FrameBufferHandle}, q{createFrameBuffer}, q{ushort width, ushort height, bgfx.fakeenum.TextureFormat.Enum format, c_uint64 textureFlags=SamplerU.clamp|SamplerV.clamp}, ext: `C++, "bgfx"`}, - + /** * Create frame buffer with size based on back-buffer ratio. Frame buffer will maintain ratio * if back buffer resolution changes. @@ -2725,7 +2725,7 @@ mixin(joinFnBinds((){ sampling. */ {q{FrameBufferHandle}, q{createFrameBuffer}, q{bgfx.fakeenum.BackbufferRatio.Enum ratio, bgfx.fakeenum.TextureFormat.Enum format, c_uint64 textureFlags=SamplerU.clamp|SamplerV.clamp}, ext: `C++, "bgfx"`}, - + /** * Create MRT frame buffer from texture handles (simple). Params: @@ -2735,7 +2735,7 @@ mixin(joinFnBinds((){ frame buffer is destroyed. */ {q{FrameBufferHandle}, q{createFrameBuffer}, q{ubyte num, const(TextureHandle)* handles, bool destroyTexture=false}, ext: `C++, "bgfx"`}, - + /** * Create MRT frame buffer from texture handles with specific layer and * mip level. @@ -2746,7 +2746,7 @@ mixin(joinFnBinds((){ frame buffer is destroyed. */ {q{FrameBufferHandle}, q{createFrameBuffer}, q{ubyte num, const(Attachment)* attachment, bool destroyTexture=false}, ext: `C++, "bgfx"`}, - + /** * Create frame buffer for multiple window rendering. * Remarks: @@ -2760,7 +2760,7 @@ mixin(joinFnBinds((){ depthFormat = Window back buffer depth format. */ {q{FrameBufferHandle}, q{createFrameBuffer}, q{void* nwh, ushort width, ushort height, bgfx.fakeenum.TextureFormat.Enum format=TextureFormat.count, bgfx.fakeenum.TextureFormat.Enum depthFormat=TextureFormat.count}, ext: `C++, "bgfx"`}, - + /** * Set frame buffer debug name. Params: @@ -2770,21 +2770,21 @@ mixin(joinFnBinds((){ that _name is zero terminated string. */ {q{void}, q{setName}, q{FrameBufferHandle handle, const(char)* name, int len=int.max}, ext: `C++, "bgfx"`}, - + /** * Obtain texture handle of frame buffer attachment. Params: handle = Frame buffer handle. */ {q{TextureHandle}, q{getTexture}, q{FrameBufferHandle handle, ubyte attachment=0}, ext: `C++, "bgfx"`}, - + /** * Destroy frame buffer. Params: handle = Frame buffer handle. */ {q{void}, q{destroy}, q{FrameBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Create shader uniform parameter. * Remarks: @@ -2815,7 +2815,7 @@ mixin(joinFnBinds((){ num = Number of elements in array. */ {q{UniformHandle}, q{createUniform}, q{const(char)* name, bgfx.fakeenum.UniformType.Enum type, ushort num=1}, ext: `C++, "bgfx"`}, - + /** * Retrieve uniform info. Params: @@ -2823,19 +2823,19 @@ mixin(joinFnBinds((){ info = Uniform info. */ {q{void}, q{getUniformInfo}, q{UniformHandle handle, ref UniformInfo info}, ext: `C++, "bgfx"`}, - + /** * Destroy shader uniform parameter. Params: handle = Handle to uniform object. */ {q{void}, q{destroy}, q{UniformHandle handle}, ext: `C++, "bgfx"`}, - + /** * Create occlusion query. */ {q{OcclusionQueryHandle}, q{createOcclusionQuery}, q{}, ext: `C++, "bgfx"`}, - + /** * Retrieve occlusion query result from previous frame. Params: @@ -2844,14 +2844,14 @@ mixin(joinFnBinds((){ can be `NULL` if result of occlusion query is not needed. */ {q{OcclusionQueryResult}, q{getResult}, q{OcclusionQueryHandle handle, int* result=null}, ext: `C++, "bgfx"`}, - + /** * Destroy occlusion query. Params: handle = Handle to occlusion query object. */ {q{void}, q{destroy}, q{OcclusionQueryHandle handle}, ext: `C++, "bgfx"`}, - + /** * Set palette color value. Params: @@ -2859,7 +2859,7 @@ mixin(joinFnBinds((){ rgba = RGBA floating point values. */ {q{void}, q{setPaletteColor}, q{ubyte index, const(float)* rgba}, ext: `C++, "bgfx"`}, - + /** * Set palette color value. Params: @@ -2870,7 +2870,7 @@ mixin(joinFnBinds((){ a = Alpha value (RGBA floating point values) */ {q{void}, q{setPaletteColor}, q{ubyte index, float r, float g, float b, float a}, ext: `C++, "bgfx"`}, - + /** * Set palette color value. Params: @@ -2878,7 +2878,7 @@ mixin(joinFnBinds((){ rgba = Packed 32-bit RGBA value. */ {q{void}, q{setPaletteColor}, q{ubyte index, uint rgba}, ext: `C++, "bgfx"`}, - + /** * Set view name. * Remarks: @@ -2895,7 +2895,7 @@ mixin(joinFnBinds((){ that _name is zero terminated string. */ {q{void}, q{setViewName}, q{ViewID id, const(char)* name, int len=int.max}, ext: `C++, "bgfx"`}, - + /** * Set view rectangle. Draw primitive outside view will be clipped. Params: @@ -2906,7 +2906,7 @@ mixin(joinFnBinds((){ height = Height of view port region. */ {q{void}, q{setViewRect}, q{ViewID id, ushort x, ushort y, ushort width, ushort height}, ext: `C++, "bgfx"`}, - + /** * Set view rectangle. Draw primitive outside view will be clipped. Params: @@ -2917,7 +2917,7 @@ mixin(joinFnBinds((){ See: `BackbufferRatio::Enum`. */ {q{void}, q{setViewRect}, q{ViewID id, ushort x, ushort y, bgfx.fakeenum.BackbufferRatio.Enum ratio}, ext: `C++, "bgfx"`}, - + /** * Set view scissor. Draw primitive outside view will be clipped. When * _x, _y, _width and _height are set to 0, scissor will be disabled. @@ -2929,7 +2929,7 @@ mixin(joinFnBinds((){ height = Height of view scissor region. */ {q{void}, q{setViewScissor}, q{ViewID id, ushort x=0, ushort y=0, ushort width=0, ushort height=0}, ext: `C++, "bgfx"`}, - + /** * Set view clear flags. Params: @@ -2941,7 +2941,7 @@ mixin(joinFnBinds((){ stencil = Stencil clear value. */ {q{void}, q{setViewClear}, q{ViewID id, ushort flags, uint rgba=0x000000ff, float depth=1.0f, ubyte stencil=0}, ext: `C++, "bgfx"`}, - + /** * Set view clear flags with different clear color for each * frame buffer texture. `bgfx::setPaletteColor` must be used to set up a @@ -2962,7 +2962,7 @@ mixin(joinFnBinds((){ c7 = Palette index for frame buffer attachment 7. */ {q{void}, q{setViewClear}, q{ViewID id, ushort flags, float depth, ubyte stencil, ubyte c0=ubyte.max, ubyte c1=ubyte.max, ubyte c2=ubyte.max, ubyte c3=ubyte.max, ubyte c4=ubyte.max, ubyte c5=ubyte.max, ubyte c6=ubyte.max, ubyte c7=ubyte.max}, ext: `C++, "bgfx"`}, - + /** * Set view sorting mode. * Remarks: @@ -2972,7 +2972,7 @@ mixin(joinFnBinds((){ mode = View sort mode. See `ViewMode::Enum`. */ {q{void}, q{setViewMode}, q{ViewID id, bgfx.fakeenum.ViewMode.Enum mode=ViewMode.default_}, ext: `C++, "bgfx"`}, - + /** * Set view frame buffer. * Remarks: @@ -2984,7 +2984,7 @@ mixin(joinFnBinds((){ default back buffer. */ {q{void}, q{setViewFrameBuffer}, q{ViewID id, FrameBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Set view's view matrix and projection matrix, * all draw primitives in this view will use these two matrices. @@ -2994,7 +2994,7 @@ mixin(joinFnBinds((){ proj = Projection matrix. */ {q{void}, q{setViewTransform}, q{ViewID id, const(void)* view, const(void)* proj}, ext: `C++, "bgfx"`}, - + /** * Post submit view reordering. Params: @@ -3004,26 +3004,26 @@ mixin(joinFnBinds((){ to default state. */ {q{void}, q{setViewOrder}, q{ViewID id=0, ushort num=ushort.max, const(ViewID)* order=null}, ext: `C++, "bgfx"`}, - + /** * Reset all view settings to default. */ {q{void}, q{resetView}, q{ViewID id}, ext: `C++, "bgfx"`}, - + /** * Begin submitting draw calls from thread. Params: forThread = Explicitly request an encoder for a worker thread. */ {q{Encoder*}, q{begin}, q{bool forThread=false}, ext: `C++, "bgfx"`}, - + /** * End submitting draw calls from thread. Params: encoder = Encoder. */ {q{void}, q{end}, q{Encoder* encoder}, ext: `C++, "bgfx"`}, - + /** * Request screen shot of window back buffer. * Remarks: @@ -3035,7 +3035,7 @@ mixin(joinFnBinds((){ filePath = Will be passed to `bgfx::CallbackI::screenShot` callback. */ {q{void}, q{requestScreenShot}, q{FrameBufferHandle handle, const(char)* filePath}, ext: `C++, "bgfx"`}, - + /** * Render frame. * Attention: `bgfx::renderFrame` is blocking call. It waits for @@ -3049,7 +3049,7 @@ mixin(joinFnBinds((){ msecs = Timeout in milliseconds. */ {q{RenderFrame}, q{renderFrame}, q{int msecs=-1}, ext: `C++, "bgfx"`}, - + /** * Set platform data. * Warning: Must be called before `bgfx::init`. @@ -3057,7 +3057,7 @@ mixin(joinFnBinds((){ data = Platform data. */ {q{void}, q{setPlatformData}, q{ref const PlatformData data}, ext: `C++, "bgfx"`}, - + /** * Get internal data for interop. * Attention: It's expected you understand some bgfx internals before you @@ -3065,7 +3065,7 @@ mixin(joinFnBinds((){ * Warning: Must be called only on render thread. */ {q{const(InternalData)*}, q{getInternalData}, q{}, ext: `C++, "bgfx"`}, - + /** * Override internal texture with externally created texture. Previously * created internal texture will released. @@ -3077,7 +3077,7 @@ mixin(joinFnBinds((){ ptr = Native API pointer to texture. */ {q{size_t}, q{overrideInternal}, q{TextureHandle handle, size_t ptr}, ext: `C++, "bgfx"`}, - + /** * Override internal texture by creating new texture. Previously created * internal texture will released. @@ -3100,7 +3100,7 @@ mixin(joinFnBinds((){ sampling. */ {q{size_t}, q{overrideInternal}, q{TextureHandle handle, ushort width, ushort height, ubyte numMIPs, bgfx.fakeenum.TextureFormat.Enum format, c_uint64 flags=Texture.none | Sampler.none}, ext: `C++, "bgfx"`}, - + /** * Sets a debug marker. This allows you to group graphics calls together for easy browsing in * graphics debugging tools. @@ -3110,7 +3110,7 @@ mixin(joinFnBinds((){ that _name is zero terminated string. */ {q{void}, q{setMarker}, q{const(char)* name, int len=int.max}, ext: `C++, "bgfx"`}, - + /** * Set render states for draw primitive. * Remarks: @@ -3137,7 +3137,7 @@ mixin(joinFnBinds((){ `BGFX_STATE_BLEND_INV_FACTOR` blend modes. */ {q{void}, q{setState}, q{c_uint64 state, uint rgba=0}, ext: `C++, "bgfx"`}, - + /** * Set condition for rendering. Params: @@ -3145,7 +3145,7 @@ mixin(joinFnBinds((){ visible = Render if occlusion query is visible. */ {q{void}, q{setCondition}, q{OcclusionQueryHandle handle, bool visible}, ext: `C++, "bgfx"`}, - + /** * Set stencil test state. Params: @@ -3154,7 +3154,7 @@ mixin(joinFnBinds((){ _fstencil is applied to both front and back facing primitives. */ {q{void}, q{setStencil}, q{uint fStencil, uint bStencil=Stencil.none}, ext: `C++, "bgfx"`}, - + /** * Set scissor for draw primitive. * Remarks: @@ -3166,7 +3166,7 @@ mixin(joinFnBinds((){ height = Height of view scissor region. */ {q{ushort}, q{setScissor}, q{ushort x, ushort y, ushort width, ushort height}, ext: `C++, "bgfx"`}, - + /** * Set scissor from cache for draw primitive. * Remarks: @@ -3175,7 +3175,7 @@ mixin(joinFnBinds((){ cache = Index in scissor cache. */ {q{void}, q{setScissor}, q{ushort cache=ushort.max}, ext: `C++, "bgfx"`}, - + /** * Set model matrix for draw primitive. If it is not called, * the model will be rendered with an identity model matrix. @@ -3184,7 +3184,7 @@ mixin(joinFnBinds((){ num = Number of matrices in array. */ {q{uint}, q{setTransform}, q{const(void)* mtx, ushort num=1}, ext: `C++, "bgfx"`}, - + /** * Set model matrix from matrix cache for draw primitive. Params: @@ -3192,7 +3192,7 @@ mixin(joinFnBinds((){ num = Number of matrices from cache. */ {q{void}, q{setTransform}, q{uint cache, ushort num=1}, ext: `C++, "bgfx"`}, - + /** * Reserve matrices in internal matrix cache. * Attention: Pointer returned can be modified until `bgfx::frame` is called. @@ -3201,7 +3201,7 @@ mixin(joinFnBinds((){ num = Number of matrices. */ {q{uint}, q{allocTransform}, q{Transform* transform, ushort num}, ext: `C++, "bgfx"`}, - + /** * Set shader uniform parameter for draw primitive. Params: @@ -3211,14 +3211,14 @@ mixin(joinFnBinds((){ use the _num passed on uniform creation. */ {q{void}, q{setUniform}, q{UniformHandle handle, const(void)* value, ushort num=1}, ext: `C++, "bgfx"`}, - + /** * Set index buffer for draw primitive. Params: handle = Index buffer. */ {q{void}, q{setIndexBuffer}, q{IndexBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Set index buffer for draw primitive. Params: @@ -3227,14 +3227,14 @@ mixin(joinFnBinds((){ numIndices = Number of indices to render. */ {q{void}, q{setIndexBuffer}, q{IndexBufferHandle handle, uint firstIndex, uint numIndices}, ext: `C++, "bgfx"`}, - + /** * Set index buffer for draw primitive. Params: handle = Dynamic index buffer. */ {q{void}, q{setIndexBuffer}, q{DynamicIndexBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Set index buffer for draw primitive. Params: @@ -3243,14 +3243,14 @@ mixin(joinFnBinds((){ numIndices = Number of indices to render. */ {q{void}, q{setIndexBuffer}, q{DynamicIndexBufferHandle handle, uint firstIndex, uint numIndices}, ext: `C++, "bgfx"`}, - + /** * Set index buffer for draw primitive. Params: tib = Transient index buffer. */ {q{void}, q{setIndexBuffer}, q{const(TransientIndexBuffer)* tib}, ext: `C++, "bgfx"`}, - + /** * Set index buffer for draw primitive. Params: @@ -3259,7 +3259,7 @@ mixin(joinFnBinds((){ numIndices = Number of indices to render. */ {q{void}, q{setIndexBuffer}, q{const(TransientIndexBuffer)* tib, uint firstIndex, uint numIndices}, ext: `C++, "bgfx"`}, - + /** * Set vertex buffer for draw primitive. Params: @@ -3267,7 +3267,7 @@ mixin(joinFnBinds((){ handle = Vertex buffer. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, VertexBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Set vertex buffer for draw primitive. Params: @@ -3280,7 +3280,7 @@ mixin(joinFnBinds((){ of vertex buffer will be used. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, VertexBufferHandle handle, uint startVertex, uint numVertices, VertexLayoutHandle layoutHandle=invalidHandle!VertexLayoutHandle}, ext: `C++, "bgfx"`}, - + /** * Set vertex buffer for draw primitive. Params: @@ -3288,7 +3288,7 @@ mixin(joinFnBinds((){ handle = Dynamic vertex buffer. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, DynamicVertexBufferHandle handle}, ext: `C++, "bgfx"`}, - + /** * Set vertex buffer for draw primitive. Params: @@ -3301,7 +3301,7 @@ mixin(joinFnBinds((){ of vertex buffer will be used. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, DynamicVertexBufferHandle handle, uint startVertex, uint numVertices, VertexLayoutHandle layoutHandle=invalidHandle!VertexLayoutHandle}, ext: `C++, "bgfx"`}, - + /** * Set vertex buffer for draw primitive. Params: @@ -3309,7 +3309,7 @@ mixin(joinFnBinds((){ tvb = Transient vertex buffer. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, const(TransientVertexBuffer)* tvb}, ext: `C++, "bgfx"`}, - + /** * Set vertex buffer for draw primitive. Params: @@ -3322,7 +3322,7 @@ mixin(joinFnBinds((){ of vertex buffer will be used. */ {q{void}, q{setVertexBuffer}, q{ubyte stream, const(TransientVertexBuffer)* tvb, uint startVertex, uint numVertices, VertexLayoutHandle layoutHandle=invalidHandle!VertexLayoutHandle}, ext: `C++, "bgfx"`}, - + /** * Set number of vertices for auto generated vertices use in conjunction * with gl_VertexID. @@ -3331,14 +3331,14 @@ mixin(joinFnBinds((){ numVertices = Number of vertices. */ {q{void}, q{setVertexCount}, q{uint numVertices}, ext: `C++, "bgfx"`}, - + /** * Set instance data buffer for draw primitive. Params: idb = Transient instance data buffer. */ {q{void}, q{setInstanceDataBuffer}, q{const(InstanceDataBuffer)* idb}, ext: `C++, "bgfx"`}, - + /** * Set instance data buffer for draw primitive. Params: @@ -3347,7 +3347,7 @@ mixin(joinFnBinds((){ num = Number of data instances. */ {q{void}, q{setInstanceDataBuffer}, q{const(InstanceDataBuffer)* idb, uint start, uint num}, ext: `C++, "bgfx"`}, - + /** * Set instance data buffer for draw primitive. Params: @@ -3356,7 +3356,7 @@ mixin(joinFnBinds((){ num = Number of data instances. */ {q{void}, q{setInstanceDataBuffer}, q{VertexBufferHandle handle, uint startVertex, uint num}, ext: `C++, "bgfx"`}, - + /** * Set instance data buffer for draw primitive. Params: @@ -3365,14 +3365,14 @@ mixin(joinFnBinds((){ num = Number of data instances. */ {q{void}, q{setInstanceDataBuffer}, q{DynamicVertexBufferHandle handle, uint startVertex, uint num}, ext: `C++, "bgfx"`}, - + /** * Set number of instances for auto generated instances use in conjunction * with gl_InstanceID. * Attention: Availability depends on: `BGFX_CAPS_VERTEX_ID`. */ {q{void}, q{setInstanceCount}, q{uint numInstances}, ext: `C++, "bgfx"`}, - + /** * Set texture stage for draw primitive. Params: @@ -3387,7 +3387,7 @@ mixin(joinFnBinds((){ sampling. */ {q{void}, q{setTexture}, q{ubyte stage, UniformHandle sampler, TextureHandle handle, uint flags=uint.max}, ext: `C++, "bgfx"`}, - + /** * Submit an empty primitive for rendering. Uniforms and draw state * will be applied but no geometry will be submitted. @@ -3397,7 +3397,7 @@ mixin(joinFnBinds((){ id = View id. */ {q{void}, q{touch}, q{ViewID id}, ext: `C++, "bgfx"`}, - + /** * Submit primitive for rendering. Params: @@ -3407,7 +3407,7 @@ mixin(joinFnBinds((){ flags = Which states to discard for next draw. See `BGFX_DISCARD_*`. */ {q{void}, q{submit}, q{ViewID id, ProgramHandle program, uint depth=0, ubyte flags=Discard.all}, ext: `C++, "bgfx"`}, - + /** * Submit primitive with occlusion query for rendering. Params: @@ -3418,7 +3418,7 @@ mixin(joinFnBinds((){ flags = Which states to discard for next draw. See `BGFX_DISCARD_*`. */ {q{void}, q{submit}, q{ViewID id, ProgramHandle program, OcclusionQueryHandle occlusionQuery, uint depth=0, ubyte flags=Discard.all}, ext: `C++, "bgfx"`}, - + /** * Submit primitive for rendering with index and instance data info from * indirect buffer. @@ -3433,7 +3433,7 @@ mixin(joinFnBinds((){ flags = Which states to discard for next draw. See `BGFX_DISCARD_*`. */ {q{void}, q{submit}, q{ViewID id, ProgramHandle program, IndirectBufferHandle indirectHandle, uint start=0, uint num=1, uint depth=0, ubyte flags=Discard.all}, ext: `C++, "bgfx"`}, - + /** * Submit primitive for rendering with index and instance data info and * draw count from indirect buffers. @@ -3451,7 +3451,7 @@ mixin(joinFnBinds((){ flags = Which states to discard for next draw. See `BGFX_DISCARD_*`. */ {q{void}, q{submit}, q{ViewID id, ProgramHandle program, IndirectBufferHandle indirectHandle, uint start, IndexBufferHandle numHandle, uint numIndex=0, uint numMax=uint.max, uint depth=0, ubyte flags=Discard.all}, ext: `C++, "bgfx"`}, - + /** * Set compute index buffer. Params: @@ -3460,7 +3460,7 @@ mixin(joinFnBinds((){ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, IndexBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++, "bgfx"`}, - + /** * Set compute vertex buffer. Params: @@ -3469,7 +3469,7 @@ mixin(joinFnBinds((){ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, VertexBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++, "bgfx"`}, - + /** * Set compute dynamic index buffer. Params: @@ -3478,7 +3478,7 @@ mixin(joinFnBinds((){ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, DynamicIndexBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++, "bgfx"`}, - + /** * Set compute dynamic vertex buffer. Params: @@ -3487,7 +3487,7 @@ mixin(joinFnBinds((){ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, DynamicVertexBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++, "bgfx"`}, - + /** * Set compute indirect buffer. Params: @@ -3496,7 +3496,7 @@ mixin(joinFnBinds((){ access = Buffer access. See `Access::Enum`. */ {q{void}, q{setBuffer}, q{ubyte stage, IndirectBufferHandle handle, bgfx.fakeenum.Access.Enum access}, ext: `C++, "bgfx"`}, - + /** * Set compute image from texture. Params: @@ -3507,7 +3507,7 @@ mixin(joinFnBinds((){ format = Texture format. See: `TextureFormat::Enum`. */ {q{void}, q{setImage}, q{ubyte stage, TextureHandle handle, ubyte mip, bgfx.fakeenum.Access.Enum access, bgfx.fakeenum.TextureFormat.Enum format=TextureFormat.count}, ext: `C++, "bgfx"`}, - + /** * Dispatch compute. Params: @@ -3519,7 +3519,7 @@ mixin(joinFnBinds((){ flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{dispatch}, q{ViewID id, ProgramHandle program, uint numX=1, uint numY=1, uint numZ=1, ubyte flags=Discard.all}, ext: `C++, "bgfx"`}, - + /** * Dispatch compute indirect. Params: @@ -3531,14 +3531,14 @@ mixin(joinFnBinds((){ flags = Discard or preserve states. See `BGFX_DISCARD_*`. */ {q{void}, q{dispatch}, q{ViewID id, ProgramHandle program, IndirectBufferHandle indirectHandle, uint start=0, uint num=1, ubyte flags=Discard.all}, ext: `C++, "bgfx"`}, - + /** * Discard previously set state for draw or compute call. Params: flags = Draw/compute states to discard. */ {q{void}, q{discard}, q{ubyte flags=Discard.all}, ext: `C++, "bgfx"`}, - + /** * Blit 2D texture region between two 2D textures. * Attention: Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. @@ -3555,7 +3555,7 @@ mixin(joinFnBinds((){ height = Height of region. */ {q{void}, q{blit}, q{ViewID id, TextureHandle dst, ushort dstX, ushort dstY, TextureHandle src, ushort srcX=0, ushort srcY=0, ushort width=ushort.max, ushort height=ushort.max}, ext: `C++, "bgfx"`}, - + /** * Blit 2D texture region between two 2D textures. * Attention: Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. @@ -3582,7 +3582,7 @@ mixin(joinFnBinds((){ unused. */ {q{void}, q{blit}, q{ViewID id, TextureHandle dst, ubyte dstMIP, ushort dstX, ushort dstY, ushort dstZ, TextureHandle src, ubyte srcMIP=0, ushort srcX=0, ushort srcY=0, ushort srcZ=0, ushort width=ushort.max, ushort height=ushort.max, ushort depth=ushort.max}, ext: `C++, "bgfx"`}, - + ]; return ret; }(), "Resolution, Limits, Init, Attachment, VertexLayout, Encoder, ")); diff --git a/bindings/zig/bgfx.zig b/bindings/zig/bgfx.zig index 8f721f160e4..fc9030babab 100644 --- a/bindings/zig/bgfx.zig +++ b/bindings/zig/bgfx.zig @@ -3720,5 +3720,3 @@ pub inline fn blit(_id: ViewId, _dst: TextureHandle, _dstMip: u8, _dstX: u16, _d return bgfx_blit(_id, _dst, _dstMip, _dstX, _dstY, _dstZ, _src, _srcMip, _srcX, _srcY, _srcZ, _width, _height, _depth); } extern fn bgfx_blit(_id: ViewId, _dst: TextureHandle, _dstMip: u8, _dstX: u16, _dstY: u16, _dstZ: u16, _src: TextureHandle, _srcMip: u8, _srcX: u16, _srcY: u16, _srcZ: u16, _width: u16, _height: u16, _depth: u16) void; - - diff --git a/docs/examples.rst b/docs/examples.rst index 036f2087e64..1af9313917e 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -689,7 +689,7 @@ Reference(s): .. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/48-drawindirect/screenshot.png :alt: example-48-drawindirect - + `49-hextile `__ --------------------------------------------------------------------------------------------- diff --git a/examples/06-bump/vs_bump.sc b/examples/06-bump/vs_bump.sc index 7bba656b0fa..3650482b7e0 100644 --- a/examples/06-bump/vs_bump.sc +++ b/examples/06-bump/vs_bump.sc @@ -14,7 +14,7 @@ void main() v_wpos = wpos; gl_Position = mul(u_viewProj, vec4(wpos, 1.0) ); - + vec4 normal = a_normal * 2.0 - 1.0; vec4 tangent = a_tangent * 2.0 - 1.0; diff --git a/examples/06-bump/vs_bump_instanced.sc b/examples/06-bump/vs_bump_instanced.sc index a3c38e974bf..507d0b0fb0e 100644 --- a/examples/06-bump/vs_bump_instanced.sc +++ b/examples/06-bump/vs_bump_instanced.sc @@ -18,7 +18,7 @@ void main() vec3 wpos = instMul(model, vec4(a_position, 1.0) ).xyz; gl_Position = mul(u_viewProj, vec4(wpos, 1.0) ); - + vec4 normal = a_normal * 2.0 - 1.0; vec3 wnormal = instMul(model, vec4(normal.xyz, 0.0) ).xyz; @@ -33,7 +33,7 @@ void main() v_wpos = wpos; - vec3 weyepos = mul(vec4(0.0, 0.0, 0.0, 1.0), u_view).xyz; + vec3 weyepos = mul(vec4(0.0, 0.0, 0.0, 1.0), u_view).xyz; v_view = instMul(weyepos - wpos, tbn); v_texcoord0 = a_texcoord0; diff --git a/examples/12-lod/fs_tree.sc b/examples/12-lod/fs_tree.sc index b9392d2df8d..d993b073343 100644 --- a/examples/12-lod/fs_tree.sc +++ b/examples/12-lod/fs_tree.sc @@ -39,4 +39,3 @@ void main() color.xyz = toLinear(color.xyz)*l; gl_FragColor = toGamma(color); } - diff --git a/examples/13-stencil/vs_stencil_color.sc b/examples/13-stencil/vs_stencil_color.sc index 16a73acbd57..a303feb1370 100644 --- a/examples/13-stencil/vs_stencil_color.sc +++ b/examples/13-stencil/vs_stencil_color.sc @@ -5,7 +5,7 @@ $input a_position * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "../common/common.sh" +#include "../common/common.sh" void main() { diff --git a/examples/13-stencil/vs_stencil_color_lighting.sc b/examples/13-stencil/vs_stencil_color_lighting.sc index b065317823a..6aeef3b67b4 100644 --- a/examples/13-stencil/vs_stencil_color_lighting.sc +++ b/examples/13-stencil/vs_stencil_color_lighting.sc @@ -6,7 +6,7 @@ $output v_normal, v_view * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "../common/common.sh" +#include "../common/common.sh" void main() { diff --git a/examples/13-stencil/vs_stencil_color_texture.sc b/examples/13-stencil/vs_stencil_color_texture.sc index 3b9d1a0615f..d2585e1a85e 100644 --- a/examples/13-stencil/vs_stencil_color_texture.sc +++ b/examples/13-stencil/vs_stencil_color_texture.sc @@ -6,7 +6,7 @@ $output v_texcoord0 * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "../common/common.sh" +#include "../common/common.sh" void main() { diff --git a/examples/13-stencil/vs_stencil_texture.sc b/examples/13-stencil/vs_stencil_texture.sc index 3b9d1a0615f..d2585e1a85e 100644 --- a/examples/13-stencil/vs_stencil_texture.sc +++ b/examples/13-stencil/vs_stencil_texture.sc @@ -6,7 +6,7 @@ $output v_texcoord0 * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "../common/common.sh" +#include "../common/common.sh" void main() { diff --git a/examples/13-stencil/vs_stencil_texture_lighting.sc b/examples/13-stencil/vs_stencil_texture_lighting.sc index 34aa4e1f182..acb1ede17d5 100644 --- a/examples/13-stencil/vs_stencil_texture_lighting.sc +++ b/examples/13-stencil/vs_stencil_texture_lighting.sc @@ -6,7 +6,7 @@ $output v_normal, v_view, v_texcoord0 * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "../common/common.sh" +#include "../common/common.sh" void main() { diff --git a/examples/14-shadowvolumes/fs_shadowvolume_svfrontcolor.sc b/examples/14-shadowvolumes/fs_shadowvolume_svfrontcolor.sc index b26ca27fe09..25042bd6996 100644 --- a/examples/14-shadowvolumes/fs_shadowvolume_svfrontcolor.sc +++ b/examples/14-shadowvolumes/fs_shadowvolume_svfrontcolor.sc @@ -5,7 +5,7 @@ #include "../common/common.sh" uniform vec4 u_color; - + void main() { gl_FragColor.xyz = u_color.xyz; diff --git a/examples/14-shadowvolumes/fs_shadowvolume_svfronttex2.sc b/examples/14-shadowvolumes/fs_shadowvolume_svfronttex2.sc index d6b436c22b7..4a10bcceef7 100644 --- a/examples/14-shadowvolumes/fs_shadowvolume_svfronttex2.sc +++ b/examples/14-shadowvolumes/fs_shadowvolume_svfronttex2.sc @@ -11,7 +11,7 @@ vec4 stencilColor(float _k) , float(abs(_k + 1.0) < 0.0001)/255.0 , float(abs(_k - 2.0) < 0.0001)/255.0 , float(abs(_k + 2.0) < 0.0001)/255.0 - ); + ); } void main() diff --git a/examples/14-shadowvolumes/fs_shadowvolume_texture_lighting.sc b/examples/14-shadowvolumes/fs_shadowvolume_texture_lighting.sc index 1800d2ff13c..dd6ddde5e8f 100644 --- a/examples/14-shadowvolumes/fs_shadowvolume_texture_lighting.sc +++ b/examples/14-shadowvolumes/fs_shadowvolume_texture_lighting.sc @@ -86,4 +86,3 @@ void main() gl_FragColor.xyz = mix(u_fogColor, final, fogFactor); gl_FragColor.w = 1.0; } - diff --git a/examples/14-shadowvolumes/vs_shadowvolume_color_texture.sc b/examples/14-shadowvolumes/vs_shadowvolume_color_texture.sc index 8c7389354f2..951e517794b 100644 --- a/examples/14-shadowvolumes/vs_shadowvolume_color_texture.sc +++ b/examples/14-shadowvolumes/vs_shadowvolume_color_texture.sc @@ -6,7 +6,7 @@ $output v_texcoord0 * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "../common/common.sh" +#include "../common/common.sh" void main() { @@ -14,4 +14,3 @@ void main() v_texcoord0 = a_texcoord0; } - diff --git a/examples/14-shadowvolumes/vs_shadowvolume_texture.sc b/examples/14-shadowvolumes/vs_shadowvolume_texture.sc index 6f2477d4ee4..951e517794b 100644 --- a/examples/14-shadowvolumes/vs_shadowvolume_texture.sc +++ b/examples/14-shadowvolumes/vs_shadowvolume_texture.sc @@ -6,7 +6,7 @@ $output v_texcoord0 * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "../common/common.sh" +#include "../common/common.sh" void main() { diff --git a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_esm_csm.sc b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_esm_csm.sc index c80fa2043af..4510c748aa2 100644 --- a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_esm_csm.sc +++ b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_esm_csm.sc @@ -14,4 +14,3 @@ void main() { #include "fs_shadowmaps_color_lighting_main.sh" } - diff --git a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_esm_linear_csm.sc b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_esm_linear_csm.sc index 5e7fa74c324..f088190c57b 100644 --- a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_esm_linear_csm.sc +++ b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_esm_linear_csm.sc @@ -15,4 +15,3 @@ void main() { #include "fs_shadowmaps_color_lighting_main.sh" } - diff --git a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_hard_linear_csm.sc b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_hard_linear_csm.sc index 97e0b48039e..778afabd47e 100644 --- a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_hard_linear_csm.sc +++ b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_hard_linear_csm.sc @@ -14,4 +14,3 @@ void main() { #include "fs_shadowmaps_color_lighting_main.sh" } - diff --git a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_csm.sc b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_csm.sc index 4b58b0ced89..e28c1763a1b 100644 --- a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_csm.sc +++ b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_csm.sc @@ -14,4 +14,3 @@ void main() { #include "fs_shadowmaps_color_lighting_main.sh" } - diff --git a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_linear_csm.sc b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_linear_csm.sc index 85448d13981..bab57701d98 100644 --- a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_linear_csm.sc +++ b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_linear_csm.sc @@ -14,4 +14,3 @@ void main() { #include "fs_shadowmaps_color_lighting_main.sh" } - diff --git a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_linear_omni.sc b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_linear_omni.sc index e9b38f2ddf1..80cec94ced5 100644 --- a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_linear_omni.sc +++ b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_pcf_linear_omni.sc @@ -14,4 +14,3 @@ void main() { #include "fs_shadowmaps_color_lighting_main.sh" } - diff --git a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_vsm_linear_csm.sc b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_vsm_linear_csm.sc index 3e98273aa60..4c7a2e691d0 100644 --- a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_vsm_linear_csm.sc +++ b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_vsm_linear_csm.sc @@ -14,4 +14,3 @@ void main() { #include "fs_shadowmaps_color_lighting_main.sh" } - diff --git a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_vsm_linear_omni.sc b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_vsm_linear_omni.sc index 15eff7b81e5..e8c9767dadc 100644 --- a/examples/16-shadowmaps/fs_shadowmaps_color_lighting_vsm_linear_omni.sc +++ b/examples/16-shadowmaps/fs_shadowmaps_color_lighting_vsm_linear_omni.sc @@ -14,4 +14,3 @@ void main() { #include "fs_shadowmaps_color_lighting_main.sh" } - diff --git a/examples/20-nanovg/blendish.h b/examples/20-nanovg/blendish.h index 8322c459f4a..a1c1d2d3f65 100644 --- a/examples/20-nanovg/blendish.h +++ b/examples/20-nanovg/blendish.h @@ -40,8 +40,8 @@ Revision 6 (2014-09-21) Summary ------- -Blendish is a small collection of drawing functions for NanoVG, designed to -replicate the look of the Blender 2.5+ User Interface. You can use these +Blendish is a small collection of drawing functions for NanoVG, designed to +replicate the look of the Blender 2.5+ User Interface. You can use these functions to theme your UI library. Several metric constants for faithful reproduction are also included. @@ -50,7 +50,7 @@ icons is unclear, they are not included in Blendishes repository, but a SVG template, "icons_template.svg" is provided, which you can use to build your own icon sheet. -To use icons, you must first load the icon sheet using one of the +To use icons, you must first load the icon sheet using one of the nvgCreateImage*() functions and then pass the image handle to bndSetIconImage(); otherwise, no icons will be drawn. See bndSetIconImage() for more information. @@ -81,7 +81,7 @@ before including blendish.h, otherwise the file will be in header-only mode. #define BND_EXPORT #endif -// if that typedef is provided elsewhere, you may define +// if that typedef is provided elsewhere, you may define // BLENDISH_NO_NVG_TYPEDEFS before including the header. #ifndef BLENDISH_NO_NVG_TYPEDEFS typedef struct NVGcontext NVGcontext; @@ -119,14 +119,14 @@ typedef struct BNDnodeTheme { NVGcolor wiresColor; // color of text label when active NVGcolor textSelectedColor; - + // inner color of active node (and dragged wire) NVGcolor activeNodeColor; // color of selected wire NVGcolor wireSelectColor; // color of background of node NVGcolor nodeBackdropColor; - + // how much a noodle curves (0 to 10) int noodleCurving; } BNDnodeTheme; @@ -192,7 +192,7 @@ typedef enum BNDcornerFlags { BND_CORNER_DOWN_RIGHT = 4, // sharp bottom left corner BND_CORNER_DOWN_LEFT = 8, - // all corners are sharp; + // all corners are sharp; // you can invert a set of flags using ^= BND_CORNER_ALL BND_CORNER_ALL = 0xF, // top border is sharp @@ -757,7 +757,7 @@ BND_EXPORT void bndSetTheme(BNDtheme theme); BND_EXPORT const BNDtheme *bndGetTheme(); // designates an image handle as returned by nvgCreateImage*() as the themes' -// icon sheet. The icon sheet format must be compatible to Blender 2.6's icon +// icon sheet. The icon sheet format must be compatible to Blender 2.6's icon // sheet; the order of icons does not matter. // A valid icon sheet is e.g. shown at // http://wiki.blender.org/index.php/Dev:2.5/Doc/How_to/Add_an_icon @@ -789,7 +789,7 @@ BND_EXPORT void bndLabel(NVGcontext *ctx, // if label is not NULL, a label will be added to the widget // widget looks best when height is BND_WIDGET_HEIGHT BND_EXPORT void bndToolButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, + float x, float y, float w, float h, int flags, BNDwidgetState state, int iconid, const char *label); // Draw a radio button with its lower left origin at (x,y) and size of (w,h), @@ -799,9 +799,9 @@ BND_EXPORT void bndToolButton(NVGcontext *ctx, // if label is not NULL, a label will be added to the widget // widget looks best when height is BND_WIDGET_HEIGHT BND_EXPORT void bndRadioButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, + float x, float y, float w, float h, int flags, BNDwidgetState state, int iconid, const char *label); - + // Calculate the corresponding text position for given coordinates px/py // in a text field. @@ -819,18 +819,18 @@ BND_EXPORT int bndTextFieldTextPosition(NVGcontext *ctx, float x, float y, float // if cend < cbegin, then no caret will be drawn // widget looks best when height is BND_WIDGET_HEIGHT BND_EXPORT void bndTextField(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, + float x, float y, float w, float h, int flags, BNDwidgetState state, int iconid, const char *text, int cbegin, int cend); - + // Draw an option button with its lower left origin at (x,y) and size of (w,h), // where flags is one or multiple flags from BNDcornerFlags and state denotes // the widgets current UI state. // if label is not NULL, a label will be added to the widget // widget looks best when height is BND_WIDGET_HEIGHT BND_EXPORT void bndOptionButton(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, + float x, float y, float w, float h, BNDwidgetState state, const char *label); - + // Draw a choice button with its lower left origin at (x,y) and size of (w,h), // where flags is one or multiple flags from BNDcornerFlags and state denotes // the widgets current UI state. @@ -838,9 +838,9 @@ BND_EXPORT void bndOptionButton(NVGcontext *ctx, // if label is not NULL, a label will be added to the widget // widget looks best when height is BND_WIDGET_HEIGHT BND_EXPORT void bndChoiceButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, + float x, float y, float w, float h, int flags, BNDwidgetState state, int iconid, const char *label); - + // Draw a color button with its lower left origin at (x,y) and size of (w,h), // where flags is one or multiple flags from BNDcornerFlags and state denotes // the widgets current UI state. @@ -856,8 +856,8 @@ BND_EXPORT void bndColorButton(NVGcontext *ctx, // a ":" separator // widget looks best when height is BND_WIDGET_HEIGHT BND_EXPORT void bndNumberField(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - const char *label, const char *value); + float x, float y, float w, float h, int flags, BNDwidgetState state, + const char *label, const char *value); // Draw slider control with its lower left origin at (x,y) and size of (w,h), // where flags is one or multiple flags from BNDcornerFlags and state denotes @@ -868,7 +868,7 @@ BND_EXPORT void bndNumberField(NVGcontext *ctx, // a ":" separator // widget looks best when height is BND_WIDGET_HEIGHT BND_EXPORT void bndSlider(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, + float x, float y, float w, float h, int flags, BNDwidgetState state, float progress, const char *label, const char *value); // Draw scrollbar with its lower left origin at (x,y) and size of (w,h), @@ -878,9 +878,9 @@ BND_EXPORT void bndSlider(NVGcontext *ctx, // horizontal widget looks best when height is BND_SCROLLBAR_HEIGHT, // vertical looks best when width is BND_SCROLLBAR_WIDTH BND_EXPORT void bndScrollBar(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, + float x, float y, float w, float h, BNDwidgetState state, float offset, float size); - + // Draw a menu background with its lower left origin at (x,y) and size of (w,h), // where flags is one or multiple flags from BNDcornerFlags. BND_EXPORT void bndMenuBackground(NVGcontext *ctx, @@ -899,7 +899,7 @@ BND_EXPORT void bndMenuLabel(NVGcontext *ctx, // if label is not NULL, a label will be added to the widget // widget looks best when height is BND_WIDGET_HEIGHT BND_EXPORT void bndMenuItem(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, + float x, float y, float w, float h, BNDwidgetState state, int iconid, const char *label); // Draw a tooltip background with its lower left origin at (x,y) and size of (w,h) @@ -909,7 +909,7 @@ BND_EXPORT void bndTooltipBackground(NVGcontext *ctx, float x, float y, float w, BND_EXPORT void bndNodePort(NVGcontext *ctx, float x, float y, BNDwidgetState state, NVGcolor color); -// Draw a node wire originating at (x0,y0) and floating to (x1,y1), with +// Draw a node wire originating at (x0,y0) and floating to (x1,y1), with // a colored gradient based on the states state0 and state1: // BND_DEFAULT: default wire color // BND_HOVER: selected wire color @@ -927,19 +927,19 @@ BND_EXPORT void bndColoredNodeWire(NVGcontext *ctx, float x0, float y0, float x1 BND_EXPORT void bndNodeBackground(NVGcontext *ctx, float x, float y, float w, float h, BNDwidgetState state, int iconid, const char *label, NVGcolor titleColor); -// Draw a window with the upper right and lower left splitter widgets into +// Draw a window with the upper right and lower left splitter widgets into // the rectangle at origin (x,y) and size (w, h) BND_EXPORT void bndSplitterWidgets(NVGcontext *ctx, float x, float y, float w, float h); // Draw the join area overlay stencil into the rectangle // at origin (x,y) and size (w,h) -// vertical is 0 or 1 and designates the arrow orientation, +// vertical is 0 or 1 and designates the arrow orientation, // mirror is 0 or 1 and flips the arrow side BND_EXPORT void bndJoinAreaOverlay(NVGcontext *ctx, float x, float y, float w, float h, int vertical, int mirror); //////////////////////////////////////////////////////////////////////////////// - + // Estimator Functions // ------------------- // Use these functions to estimate sizes for widgets with your NVGcontext. @@ -971,12 +971,12 @@ BND_EXPORT NVGcolor bndOffsetColor(NVGcolor color, int delta); BND_EXPORT void bndSelectCorners(float *radiuses, float r, int flags); // computes the upper and lower gradient colors for the inner box from a widget -// theme and the widgets state. If flipActive is set and the state is +// theme and the widgets state. If flipActive is set and the state is // BND_ACTIVE, the upper and lower colors will be swapped. BND_EXPORT void bndInnerColors(NVGcolor *shade_top, NVGcolor *shade_down, const BNDwidgetTheme *theme, BNDwidgetState state, int flipActive); -// computes the text color for a widget label from a widget theme and the +// computes the text color for a widget label from a widget theme and the // widgets state. BND_EXPORT NVGcolor bndTextColor(const BNDwidgetTheme *theme, BNDwidgetState state); @@ -987,7 +987,7 @@ BND_EXPORT NVGcolor bndTextColor(const BNDwidgetTheme *theme, BNDwidgetState sta BND_EXPORT void bndScrollHandleRect(float *x, float *y, float *w, float *h, float offset, float size); -// Add a rounded box path at position (x,y) with size (w,h) and a separate +// Add a rounded box path at position (x,y) with size (w,h) and a separate // radius for each corner listed in clockwise order, so that cr0 = top left, // cr1 = top right, cr2 = bottom right, cr3 = bottom left; // this is a low level drawing function: the path must be stroked or filled @@ -1009,7 +1009,7 @@ BND_EXPORT void bndBevel(NVGcontext *ctx, float x, float y, float w, float h); // corners of the rounded box. BND_EXPORT void bndBevelInset(NVGcontext *ctx, float x, float y, float w, float h, float cr2, float cr3); - + // Draw an icon with (x,y) as its upper left coordinate; the iconid selects // the icon from the sheet; use the BND_ICONID macro to build icon IDs. BND_EXPORT void bndIcon(NVGcontext *ctx, float x, float y, int iconid); @@ -1020,7 +1020,7 @@ BND_EXPORT void bndIcon(NVGcontext *ctx, float x, float y, int iconid); BND_EXPORT void bndDropShadow(NVGcontext *ctx, float x, float y, float w, float h, float r, float feather, float alpha); -// Draw the inner part of a widget box, with a gradient from shade_top to +// Draw the inner part of a widget box, with a gradient from shade_top to // shade_down. If h>w, the gradient will be horizontal instead of // vertical. BND_EXPORT void bndInnerBox(NVGcontext *ctx, float x, float y, float w, float h, @@ -1040,7 +1040,7 @@ BND_EXPORT void bndOutlineBox(NVGcontext *ctx, float x, float y, float w, float // if value is not NULL, label and value will be drawn with a ":" separator // inbetween. BND_EXPORT void bndIconLabelValue(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, int align, float fontsize, const char *label, + int iconid, NVGcolor color, int align, float fontsize, const char *label, const char *value); // Draw an optional icon specified by and an optional label with @@ -1049,7 +1049,7 @@ BND_EXPORT void bndIconLabelValue(NVGcontext *ctx, float x, float y, float w, fl // if label is not NULL, it will be drawn with the specified alignment, fontsize // and color. BND_EXPORT void bndNodeIconLabel(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, NVGcolor shadowColor, int align, + int iconid, NVGcolor color, NVGcolor shadowColor, int align, float fontsize, const char *label); // Calculate the corresponding text position for given coordinates px/py @@ -1057,8 +1057,8 @@ BND_EXPORT void bndNodeIconLabel(NVGcontext *ctx, float x, float y, float w, flo // See bndIconLabelCaret for more info. BND_EXPORT int bndIconLabelTextPosition(NVGcontext *ctx, float x, float y, float w, float h, int iconid, float fontsize, const char *label, int px, int py); - -// Draw an optional icon specified by , an optional label and + +// Draw an optional icon specified by , an optional label and // a caret with given fontsize and color within a widget box. // if iconid is >= 0, an icon will be drawn and the labels remaining space // will be adjusted. @@ -1068,9 +1068,9 @@ BND_EXPORT int bndIconLabelTextPosition(NVGcontext *ctx, float x, float y, float // cend must be >= cbegin and <= strlen(text) and denotes the end of the caret // if cend < cbegin, then no caret will be drawn BND_EXPORT void bndIconLabelCaret(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, float fontsize, const char *label, + int iconid, NVGcolor color, float fontsize, const char *label, NVGcolor caretcolor, int cbegin, int cend); - + // Draw a checkmark for an option box with the given upper left coordinates // (ox,oy) with the specified color. BND_EXPORT void bndCheck(NVGcontext *ctx, float ox, float oy, NVGcolor color); @@ -1086,7 +1086,7 @@ BND_EXPORT void bndUpDownArrow(NVGcontext *ctx, float x, float y, float s, NVGco BND_EXPORT void bndNodeArrowDown(NVGcontext *ctx, float x, float y, float s, NVGcolor color); // return the color of a node wire based on state -// BND_HOVER indicates selected state, +// BND_HOVER indicates selected state, // BND_ACTIVE indicates dragged state BND_EXPORT NVGcolor bndNodeWireColor(const BNDnodeTheme *theme, BNDwidgetState state); @@ -1258,10 +1258,10 @@ static BNDtheme bnd_theme = { {{{ 0.6,0.6,0.6,1 }}}, // color_inner {{{ 0.392,0.392,0.392,1 }}}, // color_inner_selected BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected 0, // shade_top 0, // shade_down - }, + }, // toolTheme { {{{ 0.098,0.098,0.098,1 }}}, // color_outline @@ -1269,7 +1269,7 @@ static BNDtheme bnd_theme = { {{{ 0.6,0.6,0.6,1 }}}, // color_inner {{{ 0.392,0.392,0.392,1 }}}, // color_inner_selected BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected 15, // shade_top -15, // shade_down }, @@ -1280,7 +1280,7 @@ static BNDtheme bnd_theme = { {{{ 0.275,0.275,0.275,1 }}}, // color_inner {{{ 0.337,0.502,0.761,1 }}}, // color_inner_selected BND_COLOR_TEXT_SELECTED, // color_text - BND_COLOR_TEXT, // color_text_selected + BND_COLOR_TEXT, // color_text_selected 15, // shade_top -15, // shade_down }, @@ -1291,7 +1291,7 @@ static BNDtheme bnd_theme = { {{{ 0.6, 0.6, 0.6,1 }}}, // color_inner {{{ 0.6, 0.6, 0.6,1 }}}, // color_inner_selected BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected 0, // shade_top 25, // shade_down }, @@ -1302,7 +1302,7 @@ static BNDtheme bnd_theme = { {{{ 0.275,0.275,0.275,1 }}}, // color_inner {{{ 0.275,0.275,0.275,1 }}}, // color_inner_selected BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected 15, // shade_top -15, // shade_down }, @@ -1313,7 +1313,7 @@ static BNDtheme bnd_theme = { {{{ 0.275,0.275,0.275,1 }}}, // color_inner {{{ 0.275,0.275,0.275,1 }}}, // color_inner_selected BND_COLOR_TEXT_SELECTED, // color_text - {{{ 0.8,0.8,0.8,1 }}}, // color_text_selected + {{{ 0.8,0.8,0.8,1 }}}, // color_text_selected 15, // shade_top -15, // shade_down }, @@ -1324,7 +1324,7 @@ static BNDtheme bnd_theme = { {{{ 0.706, 0.706, 0.706,1 }}}, // color_inner {{{ 0.6, 0.6, 0.6,1 }}}, // color_inner_selected BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected -20, // shade_top 0, // shade_down }, @@ -1335,7 +1335,7 @@ static BNDtheme bnd_theme = { {{{ 0.706, 0.706, 0.706,1 }}}, // color_inner {{{ 0.6, 0.6, 0.6,1 }}}, // color_inner_selected BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected -20, // shade_top 0, // shade_down }, @@ -1346,7 +1346,7 @@ static BNDtheme bnd_theme = { {{{ 0.314, 0.314, 0.314,0.706 }}}, // color_inner {{{ 0.392, 0.392, 0.392,0.706 }}}, // color_inner_selected BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected 5, // shade_top -5, // shade_down }, @@ -1357,7 +1357,7 @@ static BNDtheme bnd_theme = { {{{ 0.098, 0.098, 0.098, 0.902 }}}, // color_inner {{{ 0.176, 0.176, 0.176, 0.902 }}}, // color_inner_selected {{{ 0.627, 0.627, 0.627, 1 }}}, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected 0, // shade_top 0, // shade_down }, @@ -1368,7 +1368,7 @@ static BNDtheme bnd_theme = { {{{ 0.098, 0.098, 0.098, 0.902 }}}, // color_inner {{{ 0.176, 0.176, 0.176, 0.902 }}}, // color_inner_selected {{{ 0.627, 0.627, 0.627, 1 }}}, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected + BND_COLOR_TEXT_SELECTED, // color_text_selected 0, // shade_top 0, // shade_down }, @@ -1379,7 +1379,7 @@ static BNDtheme bnd_theme = { {{{ 0,0,0,0 }}}, // color_inner {{{ 0.337,0.502,0.761,1 }}}, // color_inner_selected BND_COLOR_TEXT_SELECTED, // color_text - BND_COLOR_TEXT, // color_text_selected + BND_COLOR_TEXT, // color_text_selected 38, // shade_top 0, // shade_down }, @@ -1421,21 +1421,21 @@ void bndSetFont(int font) { //////////////////////////////////////////////////////////////////////////////// -void bndLabel(NVGcontext *ctx, +void bndLabel(NVGcontext *ctx, float x, float y, float w, float h, int iconid, const char *label) { bndIconLabelValue(ctx,x,y,w,h,iconid, bnd_theme.regularTheme.textColor, BND_LEFT, BND_LABEL_FONT_SIZE, label, NULL); } -void bndToolButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, +void bndToolButton(NVGcontext *ctx, + float x, float y, float w, float h, int flags, BNDwidgetState state, int iconid, const char *label) { float cr[4]; NVGcolor shade_top, shade_down; - + bndSelectCorners(cr, BND_TOOL_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); + bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); bndInnerColors(&shade_top, &shade_down, &bnd_theme.toolTheme, state, 1); bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], @@ -1445,14 +1445,14 @@ void bndToolButton(NVGcontext *ctx, BND_LABEL_FONT_SIZE, label, NULL); } -void bndRadioButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, +void bndRadioButton(NVGcontext *ctx, + float x, float y, float w, float h, int flags, BNDwidgetState state, int iconid, const char *label) { float cr[4]; NVGcolor shade_top, shade_down; - + bndSelectCorners(cr, BND_OPTION_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); + bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); bndInnerColors(&shade_top, &shade_down, &bnd_theme.radioTheme, state, 1); bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], @@ -1468,14 +1468,14 @@ int bndTextFieldTextPosition(NVGcontext *ctx, float x, float y, float w, float h iconid, BND_LABEL_FONT_SIZE, text, px, py); } -void bndTextField(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, +void bndTextField(NVGcontext *ctx, + float x, float y, float w, float h, int flags, BNDwidgetState state, int iconid, const char *text, int cbegin, int cend) { float cr[4]; NVGcolor shade_top, shade_down; - + bndSelectCorners(cr, BND_TEXT_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); + bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); bndInnerColors(&shade_top, &shade_down, &bnd_theme.textFieldTheme, state, 0); bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], @@ -1484,19 +1484,19 @@ void bndTextField(NVGcontext *ctx, cend = -1; } bndIconLabelCaret(ctx,x,y,w,h,iconid, - bndTextColor(&bnd_theme.textFieldTheme, state), BND_LABEL_FONT_SIZE, + bndTextColor(&bnd_theme.textFieldTheme, state), BND_LABEL_FONT_SIZE, text, bnd_theme.textFieldTheme.itemColor, cbegin, cend); } -void bndOptionButton(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, +void bndOptionButton(NVGcontext *ctx, + float x, float y, float w, float h, BNDwidgetState state, const char *label) { float ox, oy; NVGcolor shade_top, shade_down; - + ox = x; oy = y+h-BND_OPTION_HEIGHT-3; - + bndBevelInset(ctx,ox,oy, BND_OPTION_WIDTH,BND_OPTION_HEIGHT, BND_OPTION_RADIUS,BND_OPTION_RADIUS); @@ -1517,14 +1517,14 @@ void bndOptionButton(NVGcontext *ctx, BND_LABEL_FONT_SIZE, label, NULL); } -void bndChoiceButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, +void bndChoiceButton(NVGcontext *ctx, + float x, float y, float w, float h, int flags, BNDwidgetState state, int iconid, const char *label) { float cr[4]; NVGcolor shade_top, shade_down; - + bndSelectCorners(cr, BND_OPTION_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); + bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); bndInnerColors(&shade_top, &shade_down, &bnd_theme.choiceTheme, state, 1); bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], @@ -1546,14 +1546,14 @@ void bndColorButton(NVGcontext *ctx, bndTransparent(bnd_theme.toolTheme.outlineColor)); } -void bndNumberField(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, +void bndNumberField(NVGcontext *ctx, + float x, float y, float w, float h, int flags, BNDwidgetState state, const char *label, const char *value) { float cr[4]; NVGcolor shade_top, shade_down; - + bndSelectCorners(cr, BND_NUMBER_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); + bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); bndInnerColors(&shade_top, &shade_down, &bnd_theme.numberFieldTheme, state, 0); bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], @@ -1567,12 +1567,12 @@ void bndNumberField(NVGcontext *ctx, bndTransparent(bnd_theme.numberFieldTheme.itemColor)); } -void bndSlider(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, +void bndSlider(NVGcontext *ctx, + float x, float y, float w, float h, int flags, BNDwidgetState state, float progress, const char *label, const char *value) { float cr[4]; NVGcolor shade_top, shade_down; - + bndSelectCorners(cr, BND_NUMBER_RADIUS, flags); bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); bndInnerColors(&shade_top, &shade_down, &bnd_theme.sliderTheme, state, 0); @@ -1588,11 +1588,11 @@ void bndSlider(NVGcontext *ctx, bnd_theme.sliderTheme.itemColor, bnd_theme.sliderTheme.shadeDown); shade_down = bndOffsetColor( bnd_theme.sliderTheme.itemColor, bnd_theme.sliderTheme.shadeTop); - } + } nvgScissor(ctx,x,y,8+(w-8)*bnd_clamp(progress,0,1),h); bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); nvgResetScissor(ctx); - + bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], bndTransparent(bnd_theme.sliderTheme.outlineColor)); bndIconLabelValue(ctx,x,y,w,h,-1, @@ -1600,10 +1600,10 @@ void bndSlider(NVGcontext *ctx, BND_LABEL_FONT_SIZE, label, value); } -void bndScrollBar(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, +void bndScrollBar(NVGcontext *ctx, + float x, float y, float w, float h, BNDwidgetState state, float offset, float size) { - + bndBevelInset(ctx,x,y,w,h, BND_SCROLLBAR_RADIUS, BND_SCROLLBAR_RADIUS); bndInnerBox(ctx,x,y,w,h, @@ -1617,18 +1617,18 @@ void bndScrollBar(NVGcontext *ctx, BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, bndTransparent(bnd_theme.scrollBarTheme.outlineColor)); - + NVGcolor itemColor = bndOffsetColor( bnd_theme.scrollBarTheme.itemColor, (state == BND_ACTIVE)?BND_SCROLLBAR_ACTIVE_SHADE:0); bndScrollHandleRect(&x,&y,&w,&h,offset,size); - + bndInnerBox(ctx,x,y,w,h, BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, bndOffsetColor( - itemColor, 3*bnd_theme.scrollBarTheme.shadeTop), + itemColor, 3*bnd_theme.scrollBarTheme.shadeTop), bndOffsetColor( itemColor, 3*bnd_theme.scrollBarTheme.shadeDown)); bndOutlineBox(ctx,x,y,w,h, @@ -1637,11 +1637,11 @@ void bndScrollBar(NVGcontext *ctx, bndTransparent(bnd_theme.scrollBarTheme.outlineColor)); } -void bndMenuBackground(NVGcontext *ctx, +void bndMenuBackground(NVGcontext *ctx, float x, float y, float w, float h, int flags) { float cr[4]; NVGcolor shade_top, shade_down; - + bndSelectCorners(cr, BND_MENU_RADIUS, flags); bndInnerColors(&shade_top, &shade_down, &bnd_theme.menuTheme, BND_DEFAULT, 0); @@ -1654,7 +1654,7 @@ void bndMenuBackground(NVGcontext *ctx, void bndTooltipBackground(NVGcontext *ctx, float x, float y, float w, float h) { NVGcolor shade_top, shade_down; - + bndInnerColors(&shade_top, &shade_down, &bnd_theme.tooltipTheme, BND_DEFAULT, 0); bndInnerBox(ctx,x,y,w,h+1, @@ -1667,21 +1667,21 @@ void bndTooltipBackground(NVGcontext *ctx, float x, float y, float w, float h) { BND_SHADOW_FEATHER,BND_SHADOW_ALPHA); } -void bndMenuLabel(NVGcontext *ctx, +void bndMenuLabel(NVGcontext *ctx, float x, float y, float w, float h, int iconid, const char *label) { bndIconLabelValue(ctx,x,y,w,h,iconid, bnd_theme.menuTheme.textColor, BND_LEFT, BND_LABEL_FONT_SIZE, label, NULL); } -void bndMenuItem(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, +void bndMenuItem(NVGcontext *ctx, + float x, float y, float w, float h, BNDwidgetState state, int iconid, const char *label) { if (state != BND_DEFAULT) { - bndInnerBox(ctx,x,y,w,h,0,0,0,0, - bndOffsetColor(bnd_theme.menuItemTheme.innerSelectedColor, - bnd_theme.menuItemTheme.shadeTop), - bndOffsetColor(bnd_theme.menuItemTheme.innerSelectedColor, + bndInnerBox(ctx,x,y,w,h,0,0,0,0, + bndOffsetColor(bnd_theme.menuItemTheme.innerSelectedColor, + bnd_theme.menuItemTheme.shadeTop), + bndOffsetColor(bnd_theme.menuItemTheme.innerSelectedColor, bnd_theme.menuItemTheme.shadeDown)); state = BND_ACTIVE; } @@ -1706,10 +1706,10 @@ void bndColoredNodeWire(NVGcontext *ctx, float x0, float y0, float x1, float y1, NVGcolor color0, NVGcolor color1) { float length = bnd_fmaxf(fabsf(x1 - x0),fabsf(y1 - y0)); float delta = length*(float)bnd_theme.nodeTheme.noodleCurving/10.0f; - + nvgBeginPath(ctx); nvgMoveTo(ctx, x0, y0); - nvgBezierTo(ctx, + nvgBezierTo(ctx, x0 + delta, y0, x1 - delta, y1, x1, y1); @@ -1718,8 +1718,8 @@ void bndColoredNodeWire(NVGcontext *ctx, float x0, float y0, float x1, float y1, nvgStrokeColor(ctx, colorw); nvgStrokeWidth(ctx, BND_NODE_WIRE_OUTLINE_WIDTH); nvgStroke(ctx); - nvgStrokePaint(ctx, nvgLinearGradient(ctx, - x0, y0, x1, y1, + nvgStrokePaint(ctx, nvgLinearGradient(ctx, + x0, y0, x1, y1, color0, color1)); nvgStrokeWidth(ctx,BND_NODE_WIRE_WIDTH); @@ -1737,17 +1737,17 @@ void bndNodeBackground(NVGcontext *ctx, float x, float y, float w, float h, BNDwidgetState state, int iconid, const char *label, NVGcolor titleColor) { bndInnerBox(ctx,x,y,w,BND_NODE_TITLE_HEIGHT+2, BND_NODE_RADIUS,BND_NODE_RADIUS,0,0, - bndTransparent(bndOffsetColor(titleColor, BND_BEVEL_SHADE)), + bndTransparent(bndOffsetColor(titleColor, BND_BEVEL_SHADE)), bndTransparent(titleColor)); bndInnerBox(ctx,x,y+float(BND_NODE_TITLE_HEIGHT-1),w,h+2-float(BND_NODE_TITLE_HEIGHT), 0,0,BND_NODE_RADIUS,BND_NODE_RADIUS, - bndTransparent(bnd_theme.nodeTheme.nodeBackdropColor), + bndTransparent(bnd_theme.nodeTheme.nodeBackdropColor), bndTransparent(bnd_theme.nodeTheme.nodeBackdropColor)); bndNodeIconLabel(ctx, x+float(BND_NODE_ARROW_AREA_WIDTH),y, w-float(BND_NODE_ARROW_AREA_WIDTH)-float(BND_NODE_MARGIN_SIDE),BND_NODE_TITLE_HEIGHT, - iconid, bnd_theme.regularTheme.textColor, - bndOffsetColor(titleColor, BND_BEVEL_SHADE), + iconid, bnd_theme.regularTheme.textColor, + bndOffsetColor(titleColor, BND_BEVEL_SHADE), BND_LEFT, BND_LABEL_FONT_SIZE, label); NVGcolor arrowColor; NVGcolor borderColor; @@ -1770,8 +1770,8 @@ void bndNodeBackground(NVGcontext *ctx, float x, float y, float w, float h, BND_NODE_RADIUS,BND_NODE_RADIUS,BND_NODE_RADIUS,BND_NODE_RADIUS, bndTransparent(borderColor)); /* - bndNodeArrowDown(ctx, - x + BND_NODE_MARGIN_SIDE, y + BND_NODE_TITLE_HEIGHT-4, + bndNodeArrowDown(ctx, + x + BND_NODE_MARGIN_SIDE, y + BND_NODE_TITLE_HEIGHT-4, BND_NODE_ARROW_SIZE, arrowColor); */ bndDropShadow(ctx,x,y,w,h,BND_NODE_RADIUS, @@ -1784,7 +1784,7 @@ void bndSplitterWidgets(NVGcontext *ctx, float x, float y, float w, float h) { NVGcolor insetDark = bndTransparent( bndOffsetColor(bnd_theme.backgroundColor, -BND_SPLITTER_SHADE)); NVGcolor inset = bndTransparent(bnd_theme.backgroundColor); - + float x2 = x+w; float y2 = y+h; @@ -1795,14 +1795,14 @@ void bndSplitterWidgets(NVGcontext *ctx, float x, float y, float w, float h) { nvgLineTo(ctx, x+9, y2); nvgMoveTo(ctx, x, y2-5); nvgLineTo(ctx, x+5, y2); - + nvgMoveTo(ctx, x2-11, y); nvgLineTo(ctx, x2, y+11); nvgMoveTo(ctx, x2-7, y); nvgLineTo(ctx, x2, y+7); nvgMoveTo(ctx, x2-3, y); nvgLineTo(ctx, x2, y+3); - + nvgStrokeColor(ctx, insetDark); nvgStroke(ctx); @@ -1813,17 +1813,17 @@ void bndSplitterWidgets(NVGcontext *ctx, float x, float y, float w, float h) { nvgLineTo(ctx, x+7, y2); nvgMoveTo(ctx, x, y2-3); nvgLineTo(ctx, x+3, y2); - + nvgMoveTo(ctx, x2-13, y); nvgLineTo(ctx, x2, y+13); nvgMoveTo(ctx, x2-9, y); nvgLineTo(ctx, x2, y+9); nvgMoveTo(ctx, x2-5, y); nvgLineTo(ctx, x2, y+5); - + nvgStrokeColor(ctx, insetLight); nvgStroke(ctx); - + nvgBeginPath(ctx); nvgMoveTo(ctx, x, y2-12); nvgLineTo(ctx, x+12, y2); @@ -1831,28 +1831,28 @@ void bndSplitterWidgets(NVGcontext *ctx, float x, float y, float w, float h) { nvgLineTo(ctx, x+8, y2); nvgMoveTo(ctx, x, y2-4); nvgLineTo(ctx, x+4, y2); - + nvgMoveTo(ctx, x2-12, y); nvgLineTo(ctx, x2, y+12); nvgMoveTo(ctx, x2-8, y); nvgLineTo(ctx, x2, y+8); nvgMoveTo(ctx, x2-4, y); nvgLineTo(ctx, x2, y+4); - + nvgStrokeColor(ctx, inset); nvgStroke(ctx); } void bndJoinAreaOverlay(NVGcontext *ctx, float x, float y, float w, float h, int vertical, int mirror) { - + if (vertical) { float u = w; w = h; h = u; } - + float s = (w>8) & 0xff; u = BND_ICON_SHEET_OFFSET_X + ix*BND_ICON_SHEET_GRID; v = BND_ICON_SHEET_OFFSET_Y + iy*BND_ICON_SHEET_GRID; - + nvgBeginPath(ctx); nvgRect(ctx,x,y,BND_ICON_SHEET_RES,BND_ICON_SHEET_RES); nvgFillPaint(ctx, @@ -2045,11 +2045,11 @@ void bndIcon(NVGcontext *ctx, float x, float y, int iconid) { void bndDropShadow(NVGcontext *ctx, float x, float y, float w, float h, float r, float feather, float alpha) { - + nvgBeginPath(ctx); y += feather; h -= feather; - + nvgMoveTo(ctx, x-feather, y-feather); nvgLineTo(ctx, x, y-feather); nvgLineTo(ctx, x, y+h-feather); @@ -2060,18 +2060,18 @@ void bndDropShadow(NVGcontext *ctx, float x, float y, float w, float h, nvgLineTo(ctx, x+w+feather, y+h+feather); nvgLineTo(ctx, x-feather, y+h+feather); nvgClosePath(ctx); - + nvgFillPaint(ctx, nvgBoxGradient(ctx, x - feather*0.5f,y - feather*0.5f, w + feather,h+feather, r+feather*0.5f, feather, - nvgRGBAf(0,0,0,alpha*alpha), + nvgRGBAf(0,0,0,alpha*alpha), nvgRGBAf(0,0,0,0))); nvgFill(ctx); } -void bndInnerBox(NVGcontext *ctx, float x, float y, float w, float h, +void bndInnerBox(NVGcontext *ctx, float x, float y, float w, float h, float cr0, float cr1, float cr2, float cr3, NVGcolor shade_top, NVGcolor shade_down) { nvgBeginPath(ctx); @@ -2100,7 +2100,7 @@ void bndSelectCorners(float *radiuses, float r, int flags) { } void bndInnerColors( - NVGcolor *shade_top, NVGcolor *shade_down, + NVGcolor *shade_top, NVGcolor *shade_down, const BNDwidgetTheme *theme, BNDwidgetState state, int flipActive) { switch(state) { @@ -2115,9 +2115,9 @@ void bndInnerColors( *shade_down = bndOffsetColor(color, theme->shadeDown); } break; case BND_ACTIVE: { - *shade_top = bndOffsetColor(theme->innerSelectedColor, + *shade_top = bndOffsetColor(theme->innerSelectedColor, flipActive?theme->shadeDown:theme->shadeTop); - *shade_down = bndOffsetColor(theme->innerSelectedColor, + *shade_down = bndOffsetColor(theme->innerSelectedColor, flipActive?theme->shadeTop:theme->shadeDown); } break; } @@ -2128,15 +2128,15 @@ NVGcolor bndTextColor(const BNDwidgetTheme *theme, BNDwidgetState state) { } void bndIconLabelValue(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, int align, float fontsize, const char *label, + int iconid, NVGcolor color, int align, float fontsize, const char *label, const char *value) { float pleft = BND_PAD_LEFT; if (label) { if (iconid >= 0) { bndIcon(ctx,x+4,y+2,iconid); pleft += BND_ICON_SHEET_RES; - } - + } + if (bnd_font < 0) return; nvgFontFaceId(ctx, bnd_font); nvgFontSize(ctx, fontsize); @@ -2146,7 +2146,7 @@ void bndIconLabelValue(NVGcontext *ctx, float x, float y, float w, float h, float label_width = nvgTextBounds(ctx, 1, 1, label, NULL, NULL); float sep_width = nvgTextBounds(ctx, 1, 1, BND_LABEL_SEPARATOR, NULL, NULL); - + nvgTextAlign(ctx, NVG_ALIGN_LEFT|NVG_ALIGN_BASELINE); x += pleft; if (align == BND_CENTER) { @@ -2161,7 +2161,7 @@ void bndIconLabelValue(NVGcontext *ctx, float x, float y, float w, float h, x += sep_width; nvgText(ctx, x, y, value, NULL); } else { - nvgTextAlign(ctx, + nvgTextAlign(ctx, (align==BND_LEFT)?(NVG_ALIGN_LEFT|NVG_ALIGN_BASELINE): (NVG_ALIGN_CENTER|NVG_ALIGN_BASELINE)); nvgTextBox(ctx,x+pleft,y+float(BND_WIDGET_HEIGHT)-BND_TEXT_PAD_DOWN, @@ -2173,7 +2173,7 @@ void bndIconLabelValue(NVGcontext *ctx, float x, float y, float w, float h, } void bndNodeIconLabel(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, NVGcolor shadowColor, + int iconid, NVGcolor color, NVGcolor shadowColor, int align, float fontsize, const char *label) { if (label && (bnd_font >= 0)) { nvgFontFaceId(ctx, bnd_font); @@ -2256,7 +2256,7 @@ static void bndCaretPosition(NVGcontext *ctx, float x, float y, } void bndIconLabelCaret(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, float fontsize, const char *label, + int iconid, NVGcolor color, float fontsize, const char *label, NVGcolor caretcolor, int cbegin, int cend) { float pleft = BND_TEXT_RADIUS; if (!label) return; @@ -2264,9 +2264,9 @@ void bndIconLabelCaret(NVGcontext *ctx, float x, float y, float w, float h, bndIcon(ctx,x+4,y+2,iconid); pleft += BND_ICON_SHEET_RES; } - + if (bnd_font < 0) return; - + x+=pleft; y+=BND_WIDGET_HEIGHT-BND_TEXT_PAD_DOWN; @@ -2289,7 +2289,7 @@ void bndIconLabelCaret(NVGcontext *ctx, float x, float y, float w, float h, rows, nrows, &c0r, &c0x, &c0y); bndCaretPosition(ctx, x, y, desc, lh, label+cend, rows, nrows, &c1r, &c1x, &c1y); - + nvgBeginPath(ctx); if (cbegin == cend) { nvgFillColor(ctx, nvgRGBf(0.337,0.502,0.761)); @@ -2309,7 +2309,7 @@ void bndIconLabelCaret(NVGcontext *ctx, float x, float y, float w, float h, } nvgFill(ctx); } - + nvgBeginPath(ctx); nvgFillColor(ctx, color); nvgTextBox(ctx,x,y,w,label, NULL); diff --git a/examples/21-deferred/vs_deferred_geom.sc b/examples/21-deferred/vs_deferred_geom.sc index 214c955b67e..e2223f60e2e 100644 --- a/examples/21-deferred/vs_deferred_geom.sc +++ b/examples/21-deferred/vs_deferred_geom.sc @@ -12,7 +12,7 @@ void main() { vec3 wpos = mul(u_model[0], vec4(a_position, 1.0) ).xyz; gl_Position = mul(u_viewProj, vec4(wpos, 1.0) ); - + vec4 normal = a_normal * 2.0 - 1.0; vec3 wnormal = mul(u_model[0], vec4(normal.xyz, 0.0) ).xyz; diff --git a/examples/28-wireframe/fs_wf_wireframe.sc b/examples/28-wireframe/fs_wf_wireframe.sc index c60b7246da8..81852c1c2a4 100644 --- a/examples/28-wireframe/fs_wf_wireframe.sc +++ b/examples/28-wireframe/fs_wf_wireframe.sc @@ -23,4 +23,3 @@ void main() vec4 rgba = vec4(color, (1.0-edge)*opacity); gl_FragColor = rgba; } - diff --git a/examples/28-wireframe/vs_wf_wireframe.sc b/examples/28-wireframe/vs_wf_wireframe.sc index 2a63a30a3e7..5644c603689 100644 --- a/examples/28-wireframe/vs_wf_wireframe.sc +++ b/examples/28-wireframe/vs_wf_wireframe.sc @@ -16,4 +16,3 @@ void main() v_view = u_camPos - mul(u_model[0], vec4(a_position, 1.0) ).xyz; v_bc = a_color1; } - diff --git a/examples/31-rsm/vs_rsm_gbuffer.sc b/examples/31-rsm/vs_rsm_gbuffer.sc index a7ac4108a11..d27cbdefc90 100644 --- a/examples/31-rsm/vs_rsm_gbuffer.sc +++ b/examples/31-rsm/vs_rsm_gbuffer.sc @@ -20,7 +20,7 @@ void main() // Calculate normal. Note that compressed normal is stored in the vertices vec3 normalObjectSpace = a_normal.xyz*2.0+-1.0; // Normal is stored in [0,1], remap to [-1,1]. - // Transform normal into world space. + // Transform normal into world space. vec3 normalWorldSpace = mul(u_model[0], vec4(normalObjectSpace, 0.0) ).xyz; // Normalize to remove (uniform...) scaling, however, recompress v_normal.xyz = normalize(normalWorldSpace)*0.5+0.5; diff --git a/examples/31-rsm/vs_rsm_shadow.sc b/examples/31-rsm/vs_rsm_shadow.sc index 942e1c3e3a6..2b5899aeced 100644 --- a/examples/31-rsm/vs_rsm_shadow.sc +++ b/examples/31-rsm/vs_rsm_shadow.sc @@ -17,7 +17,7 @@ void main() // Calculate normal. Note that compressed normal is stored in the vertices vec3 normalObjectSpace = a_normal.xyz*2.0+-1.0; // Normal is stored in [0,1], remap to [-1,1]. - // Transform normal into view space. + // Transform normal into view space. v_normal = mul(u_modelView, vec4(normalObjectSpace, 0.0) ).xyz; // Normalize to remove (uniform...) scaling v_normal = normalize(v_normal); diff --git a/examples/36-sky/fs_sky_landscape.sc b/examples/36-sky/fs_sky_landscape.sc index 0ce045e577e..df59dcd9d08 100644 --- a/examples/36-sky/fs_sky_landscape.sc +++ b/examples/36-sky/fs_sky_landscape.sc @@ -26,7 +26,7 @@ float nrand(in vec2 n) float n4rand_ss(in vec2 n) { float nrnd0 = nrand( n + 0.07*fract( u_parameters.w ) ); - float nrnd1 = nrand( n + 0.11*fract( u_parameters.w + 0.573953 ) ); + float nrnd1 = nrand( n + 0.11*fract( u_parameters.w + 0.573953 ) ); return 0.23*sqrt(-log(nrnd0+0.00001))*cos(2.0*3.141592*nrnd1)+0.5; } @@ -40,17 +40,17 @@ void main() vec3 normal = normalize(v_normal); float occulsion = toLinear(texture2D(s_texLightmap, v_texcoord0).r); - + vec3 skyDirection = vec3(0.0, 0.0, 1.0); - + float diffuseSun = max(0.0, dot(normal, normalize(u_sunDirection.xyz))); float diffuseSky = 1.0 + 0.5 * dot(normal, skyDirection); - + vec3 color = diffuseSun * u_sunLuminance.rgb + (diffuseSky * u_skyLuminance.rgb + 0.01) * occulsion; color *= 0.5; - + //color = mix(color, (u_skyLuminance + u_sunLuminance)*0.3, v_fogFactor); - + gl_FragColor.xyz = color * u_parameters.z; gl_FragColor.w = 1.0; float r = n4rand_ss(gl_FragCoord.xy) / 40.0; diff --git a/examples/36-sky/varying.def.sc b/examples/36-sky/varying.def.sc index ada280b43a4..ad5efec5b63 100644 --- a/examples/36-sky/varying.def.sc +++ b/examples/36-sky/varying.def.sc @@ -6,4 +6,4 @@ vec3 v_viewDir : TEXCOORD2 = vec3(0.0, 0.0, 1.0); vec3 a_position : POSITION; vec4 a_normal : NORMAL; -vec2 a_texcoord0 : TEXCOORD0; \ No newline at end of file +vec2 a_texcoord0 : TEXCOORD0; diff --git a/examples/37-gpudrivenrendering/cs_gdr_occlude_props.sc b/examples/37-gpudrivenrendering/cs_gdr_occlude_props.sc index 2cc260d4ac2..9c8316668eb 100644 --- a/examples/37-gpudrivenrendering/cs_gdr_occlude_props.sc +++ b/examples/37-gpudrivenrendering/cs_gdr_occlude_props.sc @@ -51,7 +51,7 @@ void main() //transform World space aaBox to NDC vec4 clipPos = mul( u_viewProj, vec4(boxCorners[i], 1) ); -#if BGFX_SHADER_LANGUAGE_GLSL +#if BGFX_SHADER_LANGUAGE_GLSL clipPos.z = 0.5 * ( clipPos.z + clipPos.w ); #endif clipPos.z = max(clipPos.z, 0); diff --git a/examples/39-assao/assao.cpp b/examples/39-assao/assao.cpp index 0a51f3ca36e..49644193664 100644 --- a/examples/39-assao/assao.cpp +++ b/examples/39-assao/assao.cpp @@ -1200,5 +1200,3 @@ ENTRY_IMPLEMENT_MAIN( , "Adaptive Screen Space Ambient Occlusion." , "https://bkaradzic.github.io/bgfx/examples.html#assao" ); - - diff --git a/examples/39-assao/cs_assao_apply.sc b/examples/39-assao/cs_assao_apply.sc index e8687d2be9e..c75e2788d14 100644 --- a/examples/39-assao/cs_assao_apply.sc +++ b/examples/39-assao/cs_assao_apply.sc @@ -3,11 +3,11 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_WO(s_target, r8, 0); -SAMPLER2DARRAY(s_finalSSAO, 1); +SAMPLER2DARRAY(s_finalSSAO, 1); // unpacking for edges; 2 bits per edge mean 4 gradient values (0, 0.33, 0.66, 1) for smoother transitions! @@ -24,7 +24,7 @@ vec4 UnpackEdges( float _packedVal ) } NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy) + uvec2(u_rect.xy); if (all(lessThan(dtID.xy, u_rect.zw) ) ) @@ -36,7 +36,7 @@ void main() // calculate index in the four deinterleaved source array texture int mx = (int(pixPos.x) % 2); #if BGFX_SHADER_LANGUAGE_GLSL - int dimy = imageSize(s_target).y; + int dimy = imageSize(s_target).y; int my = (int(dimy-1-pixPos.y) % 2); #else int my = (int(pixPos.y) % 2); @@ -47,7 +47,7 @@ void main() int id = (1-mx) + (1-my)*2; // diagonal vec2 centerVal = texelFetch(s_finalSSAO, ivec3(pixPosHalf, ic), 0 ).xy; - + ao = centerVal.x; #if 1 // change to 0 if you want to disable last pass high-res blur (for debugging purposes, etc.) @@ -58,7 +58,7 @@ void main() // convert index shifts to sampling offsets float fmx = float(mx); float fmy = float(my); - + // in case of an edge, push sampling offsets away from the edge (towards pixel center) float fmxe = (edgesLRTB.y - edgesLRTB.x); float fmye = (edgesLRTB.w - edgesLRTB.z); @@ -100,4 +100,3 @@ void main() imageStore(s_target, ivec2(dtID.xy), ao.xxxx); } } - diff --git a/examples/39-assao/cs_assao_generate_importance_map.sc b/examples/39-assao/cs_assao_generate_importance_map.sc index 3aea2b665a2..9f30767e703 100644 --- a/examples/39-assao/cs_assao_generate_importance_map.sc +++ b/examples/39-assao/cs_assao_generate_importance_map.sc @@ -3,14 +3,14 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_WO(s_target, r8, 0); -SAMPLER2DARRAY(s_finalSSAO, 1); +SAMPLER2DARRAY(s_finalSSAO, 1); NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy); diff --git a/examples/39-assao/cs_assao_generate_q.sh b/examples/39-assao/cs_assao_generate_q.sh index f39a70cfcae..7053879bd79 100644 --- a/examples/39-assao/cs_assao_generate_q.sh +++ b/examples/39-assao/cs_assao_generate_q.sh @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" // progressive poisson-like pattern; x, y are in [-1, 1] range, .z is length( vec2(x,y) ), .w is log2( z ) @@ -49,18 +49,18 @@ CONST(uint g_numTaps[5]) = { 3, 5, 12, 0, 0 }; #define SSAO_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET (2) // !!warning!! the MIP generation on the C++ side will be enabled on quality preset 2 regardless of this value, so if changing here, change the C++ side too #define SSAO_DEPTH_MIPS_GLOBAL_OFFSET (-4.3) // best noise/quality/performance tradeoff, found empirically // -// !!warning!! the edge handling is hard-coded to 'disabled' on quality level 0, and enabled above, on the C++ side; while toggling it here will work for +// !!warning!! the edge handling is hard-coded to 'disabled' on quality level 0, and enabled above, on the C++ side; while toggling it here will work for // testing purposes, it will not yield performance gains (or correct results) -#define SSAO_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET (1) +#define SSAO_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET (1) // #define SSAO_REDUCE_RADIUS_NEAR_SCREEN_BORDER_ENABLE_AT_QUALITY_PRESET (99) // 99 means disabled; only helpful if artifacts at the edges caused by lack of out of screen depth data are not acceptable with the depth sampler in either clamp or mirror modes ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -SAMPLER2D(s_viewspaceDepthSource, 0); -SAMPLER2D(s_viewspaceDepthSourceMirror, 1); +SAMPLER2D(s_viewspaceDepthSource, 0); +SAMPLER2D(s_viewspaceDepthSourceMirror, 1); IMAGE2D_RO(s_normalmapSource, rgba8, 2); -BUFFER_RO(s_loadCounter, uint, 3); -SAMPLER2D(s_importanceMap, 4); +BUFFER_RO(s_loadCounter, uint, 3); +SAMPLER2D(s_importanceMap, 4); IMAGE2D_ARRAY_RO(s_baseSSAO, rg8, 5); IMAGE2D_ARRAY_WO(s_target, rg8, 6); @@ -96,7 +96,7 @@ void CalculateRadiusParameters( const float pixCenterLength, const vec2 pixelDir // when too close, on-screen sampling disk will grow beyond screen size; limit this to avoid closeup temporal artifacts const float tooCloseLimitMod = saturate( pixCenterLength * u_effectSamplingRadiusNearLimitRec ) * 0.8 + 0.2; - + effectRadius *= tooCloseLimitMod; // 0.85 is to reduce the radius to allow for more samples on a slope to still stay within influence @@ -169,7 +169,7 @@ void SSAOTapInner( const int qualityLevel, inout float obscuranceSum, inout floa float obscurance = CalculatePixelObscurance( pixelNormal, hitDelta, falloffCalcMulSq ); float weight = 1.0; - + if( qualityLevel >= SSAO_HALOING_REDUCTION_ENABLE_AT_QUALITY_PRESET ) { //float reduct = max( 0, dot( hitDelta, negViewspaceDir ) ); @@ -198,7 +198,7 @@ void SSAOTap( const int qualityLevel, inout float obscuranceSum, inout float wei // snap to pixel center (more correct obscurance math, avoids artifacts) sampleOffset = round(sampleOffset); - // calculate MIP based on the sample distance from the centre, similar to as described + // calculate MIP based on the sample distance from the centre, similar to as described // in http://graphics.cs.williams.edu/papers/SAOHPG12/. float mipLevel = ( qualityLevel < SSAO_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET )?(0):(samplePow2Len + mipOffset); @@ -228,7 +228,7 @@ void SSAOTap( const int qualityLevel, inout float obscuranceSum, inout float wei } // this function is designed to only work with half/half depth at the moment - there's a couple of hardcoded paths that expect pixel/texel size, so it will not work for full res -void GenerateSSAOShadowsInternal( out float outShadowTerm, out vec4 outEdges, out float outWeight, +void GenerateSSAOShadowsInternal( out float outShadowTerm, out vec4 outEdges, out float outWeight, const vec2 SVPos, const int qualityLevel, bool adaptiveBase) { vec2 SVPosRounded = trunc( SVPos ); @@ -237,7 +237,7 @@ void GenerateSSAOShadowsInternal( out float outShadowTerm, out vec4 outEdges, ou const uint numberOfTaps = (adaptiveBase)?(SSAO_ADAPTIVE_TAP_BASE_COUNT) : ( g_numTaps[qualityLevel] ); float pixZ, pixLZ, pixTZ, pixRZ, pixBZ; -#if BGFX_SHADER_LANGUAGE_GLSL +#if BGFX_SHADER_LANGUAGE_GLSL vec4 valuesUL = textureGather(s_viewspaceDepthSourceMirror, SVPosRounded * u_halfViewportPixelSize + vec2(0.0,u_halfViewportPixelSize.y), 0).wzyx; vec4 valuesBR = textureGatherOffset(s_viewspaceDepthSourceMirror, SVPosRounded * u_halfViewportPixelSize + vec2(0.0,u_halfViewportPixelSize.y), ivec2( 1, -1 ), 0).wzyx; #else @@ -246,7 +246,7 @@ void GenerateSSAOShadowsInternal( out float outShadowTerm, out vec4 outEdges, ou #endif // get this pixel's viewspace depth - pixZ = valuesUL.y; + pixZ = valuesUL.y; // get left right top bottom neighbouring pixels for edge detection (gets compiled out on qualityLevel == 0) pixLZ = valuesUL.x; @@ -450,7 +450,7 @@ void GenerateSSAOShadowsInternal( out float outShadowTerm, out vec4 outEdges, ou // calculate fadeout (1 close, gradient, 0 far) float fadeOut = saturate( pixCenterPos.z * u_effectFadeOutMul + u_effectFadeOutAdd ); - + // Reduce the SSAO shadowing if we're on the edge to remove artifacts on edges (we don't care for the lower quality one) if( !adaptiveBase && (qualityLevel >= SSAO_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET) ) { @@ -464,20 +464,20 @@ void GenerateSSAOShadowsInternal( out float outShadowTerm, out vec4 outEdges, ou fadeOut *= saturate( 1.0 - edgeFadeoutFactor ); } - + // same as a bove, but a lot more conservative version // fadeOut *= saturate( dot( edgesLRTB, vec4( 0.9, 0.9, 0.9, 0.9 ) ) - 2.6 ); // strength obscurance = u_effectShadowStrength * obscurance; - + // clamp obscurance = min( obscurance, u_effectShadowClamp ); - + // fadeout obscurance *= fadeOut; - // conceptually switch to occlusion with the meaning being visibility (grows with visibility, occlusion == 1 implies full visibility), + // conceptually switch to occlusion with the meaning being visibility (grows with visibility, occlusion == 1 implies full visibility), // to be in line with what is more commonly used. float occlusion = 1.0 - obscurance; @@ -492,11 +492,11 @@ void GenerateSSAOShadowsInternal( out float outShadowTerm, out vec4 outEdges, ou } NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy) + uvec2(u_rect.xy); if (all(lessThan(dtID.xy, u_rect.zw) ) ) - { + { float outShadowTerm; float outWeight; vec4 outEdges; diff --git a/examples/39-assao/cs_assao_generate_q0.sc b/examples/39-assao/cs_assao_generate_q0.sc index 1652499278c..750adf48c14 100644 --- a/examples/39-assao/cs_assao_generate_q0.sc +++ b/examples/39-assao/cs_assao_generate_q0.sc @@ -6,4 +6,4 @@ #define ASSAO_QUALITY 0 #define ASSAO_ADAPTIVE_BASE false -#include "cs_assao_generate_q.sh" \ No newline at end of file +#include "cs_assao_generate_q.sh" diff --git a/examples/39-assao/cs_assao_generate_q1.sc b/examples/39-assao/cs_assao_generate_q1.sc index 942a482853b..fef0189adaf 100644 --- a/examples/39-assao/cs_assao_generate_q1.sc +++ b/examples/39-assao/cs_assao_generate_q1.sc @@ -6,4 +6,4 @@ #define ASSAO_QUALITY 1 #define ASSAO_ADAPTIVE_BASE false -#include "cs_assao_generate_q.sh" \ No newline at end of file +#include "cs_assao_generate_q.sh" diff --git a/examples/39-assao/cs_assao_generate_q2.sc b/examples/39-assao/cs_assao_generate_q2.sc index 2e62c45d29d..cf7aaa7d73e 100644 --- a/examples/39-assao/cs_assao_generate_q2.sc +++ b/examples/39-assao/cs_assao_generate_q2.sc @@ -6,4 +6,4 @@ #define ASSAO_QUALITY 2 #define ASSAO_ADAPTIVE_BASE false -#include "cs_assao_generate_q.sh" \ No newline at end of file +#include "cs_assao_generate_q.sh" diff --git a/examples/39-assao/cs_assao_generate_q3.sc b/examples/39-assao/cs_assao_generate_q3.sc index b53352e348c..c224ea1a45e 100644 --- a/examples/39-assao/cs_assao_generate_q3.sc +++ b/examples/39-assao/cs_assao_generate_q3.sc @@ -6,4 +6,4 @@ #define ASSAO_QUALITY 3 #define ASSAO_ADAPTIVE_BASE false -#include "cs_assao_generate_q.sh" \ No newline at end of file +#include "cs_assao_generate_q.sh" diff --git a/examples/39-assao/cs_assao_generate_q3base.sc b/examples/39-assao/cs_assao_generate_q3base.sc index 0b5c4f98eaf..8cb86c2d7f7 100644 --- a/examples/39-assao/cs_assao_generate_q3base.sc +++ b/examples/39-assao/cs_assao_generate_q3base.sc @@ -6,4 +6,4 @@ #define ASSAO_QUALITY 3 #define ASSAO_ADAPTIVE_BASE true -#include "cs_assao_generate_q.sh" \ No newline at end of file +#include "cs_assao_generate_q.sh" diff --git a/examples/39-assao/cs_assao_load_counter_clear.sc b/examples/39-assao/cs_assao_load_counter_clear.sc index 151c9ce46e3..a4fd965f10d 100644 --- a/examples/39-assao/cs_assao_load_counter_clear.sc +++ b/examples/39-assao/cs_assao_load_counter_clear.sc @@ -3,13 +3,13 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" BUFFER_WO(s_loadCounter, uint, 0); NUM_THREADS(1, 1, 1) -void main() +void main() { s_loadCounter[0] = 0; } diff --git a/examples/39-assao/cs_assao_non_smart_apply.sc b/examples/39-assao/cs_assao_non_smart_apply.sc index 41c5ce7ade7..29aaebfb255 100644 --- a/examples/39-assao/cs_assao_non_smart_apply.sc +++ b/examples/39-assao/cs_assao_non_smart_apply.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_WO(s_target, r8, 0); @@ -11,7 +11,7 @@ SAMPLER2DARRAY(s_finalSSAO, 1); // edge-ignorant blur & apply (for the lowest quality level 0) NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy) + uvec2(u_rect.xy); if (all(lessThan(dtID.xy, u_rect.zw) ) ) @@ -26,4 +26,3 @@ void main() imageStore(s_target, ivec2(dtID.xy), avg.xxxx); } } - diff --git a/examples/39-assao/cs_assao_non_smart_blur.sc b/examples/39-assao/cs_assao_non_smart_blur.sc index d319dba89d7..29476a90c2b 100644 --- a/examples/39-assao/cs_assao_non_smart_blur.sc +++ b/examples/39-assao/cs_assao_non_smart_blur.sc @@ -3,15 +3,15 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_ARRAY_WO(s_target, rg8, 0); -SAMPLER2DARRAY(s_blurInput, 1); +SAMPLER2DARRAY(s_blurInput, 1); // edge-ignorant blur in x and y directions, 9 pixels touched (for the lowest quality level 0) NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy) + uvec2(u_rect.xy); if (all(lessThan(dtID.xy, u_rect.zw) ) ) @@ -34,4 +34,3 @@ void main() imageStore(s_target, ivec3(dtID.xy,u_layer), vec4(dot( vals, 0.2.xxxx ) + centre.x * 0.2, centre.y, 0.0, 0.0)); } } - diff --git a/examples/39-assao/cs_assao_non_smart_half_apply.sc b/examples/39-assao/cs_assao_non_smart_half_apply.sc index 4af5dfa5965..06d9e1fc3d2 100644 --- a/examples/39-assao/cs_assao_non_smart_half_apply.sc +++ b/examples/39-assao/cs_assao_non_smart_half_apply.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_WO(s_target, r8, 0); @@ -11,7 +11,7 @@ SAMPLER2DARRAY(s_finalSSAO, 1); // edge-ignorant blur & apply, skipping half pixels in checkerboard pattern (for the Lowest quality level 0 and Settings::SkipHalfPixelsOnLowQualityLevel == true ) NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy) + uvec2(u_rect.xy); if (all(lessThan(dtID.xy, u_rect.zw) ) ) diff --git a/examples/39-assao/cs_assao_postprocess_importance_map_a.sc b/examples/39-assao/cs_assao_postprocess_importance_map_a.sc index 339b68c93c2..c7041bfcec1 100644 --- a/examples/39-assao/cs_assao_postprocess_importance_map_a.sc +++ b/examples/39-assao/cs_assao_postprocess_importance_map_a.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_WO(s_target, r8, 0); @@ -14,7 +14,7 @@ SAMPLER2D(s_importanceMap, 1); CONST(float cSmoothenImportance) = 1.0; NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy); @@ -31,7 +31,7 @@ void main() #if BGFX_SHADER_LANGUAGE_GLSL halfPixel.y = -halfPixel.y; -#endif +#endif vec4 vals; vals.x = texture2DLod(s_importanceMap, inUV + vec2( -halfPixel.x * 3, -halfPixel.y ), 0.0 ).x; vals.y = texture2DLod(s_importanceMap, inUV + vec2( +halfPixel.x, -halfPixel.y * 3 ), 0.0 ).x; diff --git a/examples/39-assao/cs_assao_postprocess_importance_map_b.sc b/examples/39-assao/cs_assao_postprocess_importance_map_b.sc index a0707fdbbc3..992d604a2c9 100644 --- a/examples/39-assao/cs_assao_postprocess_importance_map_b.sc +++ b/examples/39-assao/cs_assao_postprocess_importance_map_b.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_WO(s_target, r8, 0); @@ -14,7 +14,7 @@ CONST(float cSmoothenImportance) = 1.0; // Shaders below only needed for adaptive quality level NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy); @@ -40,11 +40,11 @@ void main() float retVal = mix( maxVal, avgVal, cSmoothenImportance ); - // sum the average; to avoid overflowing we assume max AO resolution is not bigger than 16384x16384; so quarter res (used here) will be 4096x4096, which leaves us with 8 bits per pixel + // sum the average; to avoid overflowing we assume max AO resolution is not bigger than 16384x16384; so quarter res (used here) will be 4096x4096, which leaves us with 8 bits per pixel uint sum = uint(saturate(retVal) * 255.0 + 0.5); - + // save every 9th to avoid InterlockedAdd congestion - since we're blurring, this is good enough; compensated by multiplying LoadCounterAvgDiv by 9 -#if BGFX_SHADER_LANGUAGE_GLSL +#if BGFX_SHADER_LANGUAGE_GLSL if( ((dtID.x % 3) + ((dim.y-1-dtID.y) % 3)) == 0 ) #else if( ((dtID.x % 3) + (dtID.y % 3)) == 0 ) diff --git a/examples/39-assao/cs_assao_prepare_depth_mip.sc b/examples/39-assao/cs_assao_prepare_depth_mip.sc index a9e18b7f7ab..70cae37a87c 100644 --- a/examples/39-assao/cs_assao_prepare_depth_mip.sc +++ b/examples/39-assao/cs_assao_prepare_depth_mip.sc @@ -3,10 +3,10 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" -IMAGE2D_RO(s_viewspaceDepthSource0, r16f, 0); +IMAGE2D_RO(s_viewspaceDepthSource0, r16f, 0); IMAGE2D_RO(s_viewspaceDepthSource1, r16f, 1); IMAGE2D_RO(s_viewspaceDepthSource2, r16f, 2); IMAGE2D_RO(s_viewspaceDepthSource3, r16f, 3); @@ -26,7 +26,7 @@ void CalculateRadiusParameters( const float pixCenterLength, const vec2 pixelDir // when too close, on-screen sampling disk will grow beyond screen size; limit this to avoid closeup temporal artifacts const float tooCloseLimitMod = saturate( pixCenterLength * u_effectSamplingRadiusNearLimitRec ) * 0.8 + 0.2; - + effectRadius *= tooCloseLimitMod; // 0.85 is to reduce the radius to allow for more samples on a slope to still stay within influence @@ -37,13 +37,13 @@ void CalculateRadiusParameters( const float pixCenterLength, const vec2 pixelDir } NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy); uvec2 dim = uvec2(u_rect.zw); if (all(lessThan(dtID.xy, dim) ) ) - { + { ivec2 baseCoords = ivec2(dtID.xy) * 2; vec4 depthsArr[4]; @@ -66,14 +66,14 @@ void main() depthsArr[3].y = imageLoad(s_viewspaceDepthSource3, baseCoords + ivec2( 1, 0 )).x; depthsArr[3].z = imageLoad(s_viewspaceDepthSource3, baseCoords + ivec2( 0, 1 )).x; depthsArr[3].w = imageLoad(s_viewspaceDepthSource3, baseCoords + ivec2( 1, 1 )).x; - + const uvec2 SVPosui = uvec2( dtID.xy ); const uint pseudoRandomA = (SVPosui.x ) + 2 * (SVPosui.y ); float dummyUnused1; float dummyUnused2; float falloffCalcMulSq, falloffCalcAdd; - + UNROLL for( int i = 0; i < 4; i++ ) { diff --git a/examples/39-assao/cs_assao_prepare_depths.sc b/examples/39-assao/cs_assao_prepare_depths.sc index c19b9318579..26e1b371e9b 100644 --- a/examples/39-assao/cs_assao_prepare_depths.sc +++ b/examples/39-assao/cs_assao_prepare_depths.sc @@ -3,12 +3,12 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" SAMPLER2D(s_depthSource, 0); -IMAGE2D_WO(s_target0, r16f, 1); +IMAGE2D_WO(s_target0, r16f, 1); IMAGE2D_WO(s_target1, r16f, 2); IMAGE2D_WO(s_target2, r16f, 3); IMAGE2D_WO(s_target3, r16f, 4); @@ -29,15 +29,15 @@ float ScreenSpaceToViewSpaceDepth( float screenDepth ) NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy); uvec2 dim = imageSize(s_target0).xy; if (all(lessThan(dtID.xy, dim) ) ) - { + { ivec2 baseCoord = ivec2(dtID.xy) * 2; -#if BGFX_SHADER_LANGUAGE_GLSL +#if BGFX_SHADER_LANGUAGE_GLSL float a = texelFetch(s_depthSource, baseCoord + ivec2( 0, 1 ), 0).x; float b = texelFetch(s_depthSource, baseCoord + ivec2( 1, 1 ), 0).x; float c = texelFetch(s_depthSource, baseCoord + ivec2( 0, 0 ), 0).x; @@ -55,4 +55,3 @@ void main() imageStore(s_target3, ivec2(dtID.xy), ScreenSpaceToViewSpaceDepth( d ).xxxx); } } - diff --git a/examples/39-assao/cs_assao_prepare_depths_and_normals.sc b/examples/39-assao/cs_assao_prepare_depths_and_normals.sc index f7883cfe4ba..b952828b386 100644 --- a/examples/39-assao/cs_assao_prepare_depths_and_normals.sc +++ b/examples/39-assao/cs_assao_prepare_depths_and_normals.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" SAMPLER2D(s_depthSource, 0); @@ -68,12 +68,12 @@ vec3 CalculateNormal( const vec4 edgesLRTB, vec3 pixCenterPos, vec3 pixLPos, vec pixelNormal += ( acceptedNormals.z ) * cross( pixRPos, pixBPos ); pixelNormal += ( acceptedNormals.w ) * cross( pixBPos, pixLPos ); pixelNormal = normalize( pixelNormal ); - + return pixelNormal; } NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy); @@ -114,12 +114,12 @@ void main() #if BGFX_SHADER_LANGUAGE_GLSL // left 2 - pixZs[0][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 0 ) ).x ); - pixZs[0][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, -1 ) ).x ); + pixZs[0][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 0 ) ).x ); + pixZs[0][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, -1 ) ).x ); // right 2 - pixZs[3][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 0 ) ).x ); - pixZs[3][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, -1 ) ).x ); + pixZs[3][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 0 ) ).x ); + pixZs[3][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, -1 ) ).x ); // top 2 pixZs[1][0] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 0, 1 ) ).x ); @@ -130,11 +130,11 @@ void main() pixZs[2][3] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 1, -2 ) ).x ); #else // left 2 - pixZs[0][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 0 ) ).x ); - pixZs[0][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 1 ) ).x ); + pixZs[0][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 0 ) ).x ); + pixZs[0][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 1 ) ).x ); // right 2 - pixZs[3][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 0 ) ).x ); - pixZs[3][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 1 ) ).x ); + pixZs[3][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 0 ) ).x ); + pixZs[3][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 1 ) ).x ); // top 2 pixZs[1][0] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 0, -1 ) ).x ); pixZs[2][0] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 1, -1 ) ).x ); @@ -162,13 +162,13 @@ void main() // left 2 pixPos[0][1] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( -1.0, 0.0), pixZs[0][1] ); pixPos[0][2] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( -1.0, 1.0), pixZs[0][2] ); - // right 2 + // right 2 pixPos[3][1] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 2.0, 0.0), pixZs[3][1] ); pixPos[3][2] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 2.0, 1.0), pixZs[3][2] ); - // top 2 + // top 2 pixPos[1][0] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 0.0, -1.0 ), pixZs[1][0] ); pixPos[2][0] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 1.0, -1.0 ), pixZs[2][0] ); - // bottom 2 + // bottom 2 pixPos[1][3] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 0.0, 2.0 ), pixZs[1][3] ); pixPos[2][3] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 1.0, 2.0 ), pixZs[2][3] ); diff --git a/examples/39-assao/cs_assao_prepare_depths_and_normals_half.sc b/examples/39-assao/cs_assao_prepare_depths_and_normals_half.sc index 8980f85d868..390c8b4ee9e 100644 --- a/examples/39-assao/cs_assao_prepare_depths_and_normals_half.sc +++ b/examples/39-assao/cs_assao_prepare_depths_and_normals_half.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" SAMPLER2D(s_depthSource, 0); @@ -66,12 +66,12 @@ vec3 CalculateNormal( const vec4 edgesLRTB, vec3 pixCenterPos, vec3 pixLPos, vec pixelNormal += ( acceptedNormals.z ) * cross( pixRPos, pixBPos ); pixelNormal += ( acceptedNormals.w ) * cross( pixBPos, pixLPos ); pixelNormal = normalize( pixelNormal ); - + return pixelNormal; } NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy); @@ -110,12 +110,12 @@ void main() pixZs[2][2] = z3; #if BGFX_SHADER_LANGUAGE_GLSL // left 2 - pixZs[0][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 0 ) ).x ); - pixZs[0][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, -1 ) ).x ); + pixZs[0][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 0 ) ).x ); + pixZs[0][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, -1 ) ).x ); // right 2 - pixZs[3][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 0 ) ).x ); - pixZs[3][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, -1 ) ).x ); + pixZs[3][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 0 ) ).x ); + pixZs[3][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, -1 ) ).x ); // top 2 pixZs[1][0] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 0, 1 ) ).x ); @@ -126,12 +126,12 @@ void main() pixZs[2][3] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 1, -2 ) ).x ); #else // left 2 - pixZs[0][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 0 ) ).x ); - pixZs[0][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 1 ) ).x ); + pixZs[0][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 0 ) ).x ); + pixZs[0][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( -1, 1 ) ).x ); // right 2 - pixZs[3][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 0 ) ).x ); - pixZs[3][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 1 ) ).x ); + pixZs[3][1] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 0 ) ).x ); + pixZs[3][2] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 2, 1 ) ).x ); // top 2 pixZs[1][0] = ScreenSpaceToViewSpaceDepth( texture2DLodOffset(s_depthSource, upperLeftUV, 0.0, ivec2( 0, -1 ) ).x ); @@ -164,13 +164,13 @@ void main() // left 2 pixPos[0][1] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( -1.0, 0.0), pixZs[0][1] ); //pixPos[0][2] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( -1.0, 1.0), pixZs[0][2] ); - // right 2 + // right 2 //pixPos[3][1] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 2.0, 0.0), pixZs[3][1] ); pixPos[3][2] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 2.0, 1.0), pixZs[3][2] ); - // top 2 + // top 2 pixPos[1][0] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 0.0, -1.0 ), pixZs[1][0] ); //pixPos[2][0] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 1.0, -1.0 ), pixZs[2][0] ); - // bottom 2 + // bottom 2 //pixPos[1][3] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 0.0, 2.0 ), pixZs[1][3] ); pixPos[2][3] = NDCToViewspace( upperLeftUV + viewportPixelSize * vec2( 1.0, 2.0 ), pixZs[2][3] ); diff --git a/examples/39-assao/cs_assao_prepare_depths_half.sc b/examples/39-assao/cs_assao_prepare_depths_half.sc index e25e22994f3..8a4c1dda4a6 100644 --- a/examples/39-assao/cs_assao_prepare_depths_half.sc +++ b/examples/39-assao/cs_assao_prepare_depths_half.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" SAMPLER2D(s_depthSource, 0); @@ -25,7 +25,7 @@ float ScreenSpaceToViewSpaceDepth( float screenDepth ) } NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy); @@ -33,7 +33,7 @@ void main() if (all(lessThan(dtID.xy, dim) ) ) { ivec2 baseCoord = ivec2(dtID.xy) * 2; -#if BGFX_SHADER_LANGUAGE_GLSL +#if BGFX_SHADER_LANGUAGE_GLSL float a = texelFetch(s_depthSource, baseCoord + ivec2( 0, 1 ), 0).x; float d = texelFetch(s_depthSource, baseCoord + ivec2( 1, 0 ), 0).x; #else @@ -45,4 +45,3 @@ void main() imageStore(s_target1, ivec2(dtID.xy), ScreenSpaceToViewSpaceDepth( d ).xxxx); } } - diff --git a/examples/39-assao/cs_assao_smart_blur.sc b/examples/39-assao/cs_assao_smart_blur.sc index b50ac784924..7cf4722b331 100644 --- a/examples/39-assao/cs_assao_smart_blur.sc +++ b/examples/39-assao/cs_assao_smart_blur.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_ARRAY_WO(s_target, rg8, 0); @@ -27,7 +27,7 @@ vec4 UnpackEdges( float _packedVal ) void AddSample( float ssaoValue, float edgeValue, inout float sum, inout float sumWeight ) { - float weight = edgeValue; + float weight = edgeValue; sum += (weight * ssaoValue); sumWeight += weight; @@ -70,7 +70,7 @@ vec2 SampleBlurred( ivec2 inPos, vec2 coord ) // edge-sensitive blur NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy) + uvec2(u_rect.xy); if (all(lessThan(dtID.xy, u_rect.zw) ) ) @@ -79,4 +79,3 @@ void main() imageStore(s_target, ivec3(dtID.xy, u_layer), SampleBlurred( ivec2(dtID.xy), inUV ).xyyy); } } - diff --git a/examples/39-assao/cs_assao_smart_blur_wide.sc b/examples/39-assao/cs_assao_smart_blur_wide.sc index 89e0d47b799..70c81cd2250 100644 --- a/examples/39-assao/cs_assao_smart_blur_wide.sc +++ b/examples/39-assao/cs_assao_smart_blur_wide.sc @@ -3,7 +3,7 @@ * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ -#include "bgfx_compute.sh" +#include "bgfx_compute.sh" #include "uniforms.sh" IMAGE2D_ARRAY_WO(s_target, rg8, 0); @@ -27,7 +27,7 @@ vec4 UnpackEdges( float _packedVal ) void AddSample( float ssaoValue, float edgeValue, inout float sum, inout float sumWeight ) { - float weight = edgeValue; + float weight = edgeValue; sum += (weight * ssaoValue); sumWeight += weight; @@ -71,7 +71,7 @@ vec2 SampleBlurredWide(vec3 coord) // edge-sensitive blur (wider kernel) NUM_THREADS(8, 8, 1) -void main() +void main() { uvec2 dtID = uvec2(gl_GlobalInvocationID.xy) + uvec2(u_rect.xy); if (all(lessThan(dtID.xy, u_rect.zw) ) ) @@ -80,4 +80,3 @@ void main() imageStore(s_target, ivec3(dtID.xy,u_layer), SampleBlurredWide(vec3(inUV,0.0)).xyyy); } } - diff --git a/examples/39-assao/fs_assao_deferred_combine.sc b/examples/39-assao/fs_assao_deferred_combine.sc index e12d58ee412..c660df37f19 100644 --- a/examples/39-assao/fs_assao_deferred_combine.sc +++ b/examples/39-assao/fs_assao_deferred_combine.sc @@ -29,7 +29,7 @@ void main() // Expand out normal n = n*2.0-1.0; vec3 l = normalize(vec3(-0.8,0.75,-1.0)); - light = max(0.0,dot(n,l)) * 1.2+ 0.3; + light = max(0.0,dot(n,l)) * 1.2+ 0.3; } float ao = 1.0; @@ -39,5 +39,4 @@ void main() } gl_FragColor = vec4(albedoColor * light * ao, 1.0f); -} - \ No newline at end of file +} diff --git a/examples/39-assao/uniforms.sh b/examples/39-assao/uniforms.sh index 5cedd7a4191..585262b9e77 100644 --- a/examples/39-assao/uniforms.sh +++ b/examples/39-assao/uniforms.sh @@ -1,8 +1,8 @@ uniform vec4 u_params[19]; uniform vec4 u_rect; -#define u_viewportPixelSize u_params[0].xy -#define u_halfViewportPixelSize u_params[0].zw +#define u_viewportPixelSize u_params[0].xy +#define u_halfViewportPixelSize u_params[0].zw #define u_depthUnpackConsts u_params[1].xy #define u_ndcToViewMul u_params[2].xy #define u_ndcToViewAdd u_params[2].zw diff --git a/examples/39-assao/varying.def.sc b/examples/39-assao/varying.def.sc index 8471e5e5a68..53b7528d2df 100644 --- a/examples/39-assao/varying.def.sc +++ b/examples/39-assao/varying.def.sc @@ -3,5 +3,4 @@ vec2 a_texcoord0 : TEXCOORD0; vec3 a_normal : NORMAL; vec2 v_texcoord0 : TEXCOORD0; -vec3 v_normal : NORMAL = vec3(0.0, 0.0, 1.0); - +vec3 v_normal : NORMAL = vec3(0.0, 0.0, 1.0); diff --git a/examples/39-assao/vs_assao.sc b/examples/39-assao/vs_assao.sc index a4eb7999cf0..f9b88efc17c 100644 --- a/examples/39-assao/vs_assao.sc +++ b/examples/39-assao/vs_assao.sc @@ -11,6 +11,5 @@ $output v_texcoord0 void main() { gl_Position = mul(u_modelViewProj, vec4(a_position.xyz, 1.0) ); - v_texcoord0 = a_texcoord0; + v_texcoord0 = a_texcoord0; } - diff --git a/examples/39-assao/vs_assao_gbuffer.sc b/examples/39-assao/vs_assao_gbuffer.sc index e9662e614f8..d71a21bd0c5 100644 --- a/examples/39-assao/vs_assao_gbuffer.sc +++ b/examples/39-assao/vs_assao_gbuffer.sc @@ -18,7 +18,7 @@ void main() // Calculate normal. Note that compressed normal is stored in the vertices vec3 normalObjectSpace = a_normal.xyz*2.0+-1.0; // Normal is stored in [0,1], remap to [-1,1]. - // Transform normal into world space. + // Transform normal into world space. vec3 normalWorldSpace = mul(u_model[0], vec4(normalObjectSpace, 0.0) ).xyz; // Normalize to remove (uniform...) scaling, however, recompress v_normal.xyz = normalize(normalWorldSpace)*0.5+0.5; diff --git a/examples/40-svt/fs_vt_mip.sc b/examples/40-svt/fs_vt_mip.sc index 13b2e7221e8..aea08c1367c 100644 --- a/examples/40-svt/fs_vt_mip.sc +++ b/examples/40-svt/fs_vt_mip.sc @@ -20,5 +20,5 @@ void main() float mip = floor(MipLevel(v_texcoord0.xy, VirtualTextureSize) - MipBias); mip = clamp(mip, 0, mipCount); vec2 offset = floor(v_texcoord0.xy * PageTableSize); - gl_FragColor = vec4(floor(vec3(offset / exp2(mip), mip)) / 255.0, 1.0); + gl_FragColor = vec4(floor(vec3(offset / exp2(mip), mip)) / 255.0, 1.0); } diff --git a/examples/40-svt/fs_vt_unlit.sc b/examples/40-svt/fs_vt_unlit.sc index b28d9a105d8..68ee664b940 100644 --- a/examples/40-svt/fs_vt_unlit.sc +++ b/examples/40-svt/fs_vt_unlit.sc @@ -9,8 +9,8 @@ $input v_texcoord0 * Reference(s): * - Based on Virtual Texture Demo by Brad Blanchard * http://web.archive.org/web/20190103162638/http://linedef.com/virtual-texture-demo.html - */ - + */ + #include "../common/common.sh" #include "virtualtexture.sh" @@ -18,4 +18,3 @@ void main() { gl_FragColor = VirtualTexture(v_texcoord0.xy); } - diff --git a/examples/40-svt/virtualtexture.sh b/examples/40-svt/virtualtexture.sh index 390ff5c9e09..e12537003f5 100644 --- a/examples/40-svt/virtualtexture.sh +++ b/examples/40-svt/virtualtexture.sh @@ -2,7 +2,7 @@ * Copyright 2011-2024 Branimir Karadzic. All rights reserved. * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ - + /* * Reference(s): * - Based on Virtual Texture Demo by Brad Blanchard @@ -33,8 +33,8 @@ float MipLevel( vec2 uv, float size ) return max( 0.5 * log2( d ), 0 ); } -// This function samples the page table and returns the page's -// position and mip level. +// This function samples the page table and returns the page's +// position and mip level. vec3 SampleTable( vec2 uv, float mip ) { vec2 offset = fract( uv * PageTableSize ) / PageTableSize; diff --git a/examples/41-tess/uniforms.sh b/examples/41-tess/uniforms.sh index 38fe7820a06..358948ad086 100644 --- a/examples/41-tess/uniforms.sh +++ b/examples/41-tess/uniforms.sh @@ -11,5 +11,3 @@ uniform vec4 u_params[2]; #define COMPUTE_THREAD_COUNT 32u #define UPDATE_INDIRECT_VALUE_DIVIDE 32u - - diff --git a/examples/43-denoise/fs_denoise_spatial_implementation.sh b/examples/43-denoise/fs_denoise_spatial_implementation.sh index e04a91bb9a5..7c6fd22294d 100644 --- a/examples/43-denoise/fs_denoise_spatial_implementation.sh +++ b/examples/43-denoise/fs_denoise_spatial_implementation.sh @@ -74,7 +74,7 @@ void main() vec4 sampleColor = texture2D(s_color, sampleTexCoord); vec3 sampleNormal = NormalDecode(texture2D(s_normal, sampleTexCoord).xyz); float normalWeight = pow(saturate(dot(normal, sampleNormal)), u_sigmaNormal); - + float sampleDepth = texture2D(s_depth, sampleTexCoord).x; float depthDelta = depth - sampleDepth; float depthWeight = exp(-abs(depthDelta) / max(1e-5, u_sigmaDepth*u_sigmaDepth)); diff --git a/examples/43-denoise/fs_denoise_txaa.sc b/examples/43-denoise/fs_denoise_txaa.sc index d4cdc82ec30..e2d8cd661a1 100644 --- a/examples/43-denoise/fs_denoise_txaa.sc +++ b/examples/43-denoise/fs_denoise_txaa.sc @@ -39,7 +39,7 @@ vec3 FindNearestDepth(sampler2D _depthSampler, vec2 _texCoord) { vec3 tcd7 = vec3(coord, texture2D(_depthSampler, coord).x); coord = _texCoord + du + dv; vec3 tcd8 = vec3(coord, texture2D(_depthSampler, coord).x); - + vec3 minTcd = tcd0; if (tcd1.z < minTcd.z) minTcd = tcd1; if (tcd2.z < minTcd.z) minTcd = tcd2; @@ -86,7 +86,7 @@ void main() vec2 texCoordPrev = GetTexCoordPrevious(texCoord, velocity); vec3 colorPrev = texture2D(s_previousColor, texCoordPrev).xyz; - + // Sample local neighborhood for variance clipping vec2 du = vec2(u_viewTexel.x, 0.0); vec2 dv = vec2(0.0, u_viewTexel.y); diff --git a/examples/43-denoise/normal_encoding.sh b/examples/43-denoise/normal_encoding.sh index 231cdae01b4..c55c12dc4c3 100644 --- a/examples/43-denoise/normal_encoding.sh +++ b/examples/43-denoise/normal_encoding.sh @@ -46,7 +46,7 @@ vec2 float32x3_to_oct(vec3 v) { // Project the sphere onto the octahedron, and then onto the xy plane vec2 p = v.xy * (1.0 / (abs(v.x) + abs(v.y) + abs(v.z))); - + // Reflect the folds of the lower hemisphere over the diagonals return (v.z <= 0.0) ? ((1.0 - abs(p.yx)) * signNotZero(p)) : p; } diff --git a/examples/44-sss/fs_sss_gbuffer.sc b/examples/44-sss/fs_sss_gbuffer.sc index 54c50929461..fd72857b2ad 100644 --- a/examples/44-sss/fs_sss_gbuffer.sc +++ b/examples/44-sss/fs_sss_gbuffer.sc @@ -22,7 +22,7 @@ mat3 cotangentFrame(vec3 N, vec3 p, vec2 uv) vec3 dp1perp = cross(N, dp1); vec3 T = dp2perp * duv1.x + dp1perp * duv2.x; vec3 B = dp2perp * duv1.y + dp1perp * duv2.y; - + // construct a scale-invariant frame float invMax = inversesqrt(max(dot(T,T), dot(B,B))); return mat3(T*invMax, B*invMax, N); @@ -34,13 +34,13 @@ void main() // get vertex normal vec3 normal = normalize(v_normal); - + // get normal map normal, unpack, and calculate z vec3 normalMap; normalMap.xy = texture2D(s_normal, v_texcoord0).xy; normalMap.xy = normalMap.xy * 2.0 - 1.0; normalMap.z = sqrt(1.0 - dot(normalMap.xy, normalMap.xy)); - + // swap x and y, because the brick texture looks flipped, don't copy this... normalMap.xy = normalMap.yx; @@ -48,7 +48,7 @@ void main() vec3 pos = v_texcoord1.xyz; // contains world space pos mat3 TBN = cotangentFrame(normal, pos, v_texcoord0); vec3 bumpedNormal = normalize(instMul(TBN, normalMap)); - + // need some proxy for roughness value w/o roughness texture // assume horizontal (blue) normal map is smooth, and then // modulate with albedo for some higher frequency detail diff --git a/examples/44-sss/normal_encoding.sh b/examples/44-sss/normal_encoding.sh index c83b95753da..f56c075f7cf 100644 --- a/examples/44-sss/normal_encoding.sh +++ b/examples/44-sss/normal_encoding.sh @@ -46,7 +46,7 @@ vec2 float32x3_to_oct(vec3 v) { // Project the sphere onto the octahedron, and then onto the xy plane vec2 p = v.xy * (1.0 / (abs(v.x) + abs(v.y) + abs(v.z))); - + // Reflect the folds of the lower hemisphere over the diagonals return (v.z <= 0.0) ? ((1.0 - abs(p.yx)) * signNotZero(p)) : p; } diff --git a/examples/45-bokeh/bokeh_dof.sh b/examples/45-bokeh/bokeh_dof.sh index 43c4885d1d3..21a2a8bc1d8 100644 --- a/examples/45-bokeh/bokeh_dof.sh +++ b/examples/45-bokeh/bokeh_dof.sh @@ -91,7 +91,7 @@ float BokehShapeFromAngle (float lobeCount, float radiusMin, float radiusDelta2x return 1.0f; } - // divide edge into some number of lobes + // divide edge into some number of lobes float invPeriod = lobeCount / (2.0 * 3.1415926); float periodFraction = fract(angle * invPeriod + rotation); diff --git a/examples/45-bokeh/fs_bokeh_forward.sc b/examples/45-bokeh/fs_bokeh_forward.sc index 2ad870f481a..50d4fd0ee39 100644 --- a/examples/45-bokeh/fs_bokeh_forward.sc +++ b/examples/45-bokeh/fs_bokeh_forward.sc @@ -32,7 +32,7 @@ mat3 cotangentFrame(vec3 N, vec3 p, vec2 uv) vec3 dp1perp = cross(N, dp1); vec3 T = dp2perp * duv1.x + dp1perp * duv2.x; vec3 B = dp2perp * duv1.y + dp1perp * duv2.y; - + // construct a scale-invariant frame float invMax = inversesqrt(max(dot(T,T), dot(B,B))); return mat3(T*invMax, B*invMax, N); @@ -44,13 +44,13 @@ void main() // get vertex normal vec3 normal = normalize(v_normal); - + // get normal map normal, unpack, and calculate z vec3 normalMap; normalMap.xy = texture2D(s_normal, v_texcoord0).xy; normalMap.xy = normalMap.xy * 2.0 - 1.0; normalMap.z = sqrt(1.0 - dot(normalMap.xy, normalMap.xy)); - + // swap x and y, because the brick texture looks flipped, don't copy this... normalMap.xy = -normalMap.yx; diff --git a/examples/46-fsr/ffx_a.h b/examples/46-fsr/ffx_a.h index 0efcc8d8109..eff831ee2e6 100644 --- a/examples/46-fsr/ffx_a.h +++ b/examples/46-fsr/ffx_a.h @@ -249,7 +249,7 @@ //------------------------------------------------------------------------------------------------------------------------------ // TODO // ==== -// - Replace transcendentals with manual versions. +// - Replace transcendentals with manual versions. //============================================================================================================================== #ifdef A_GCC A_STATIC AD1 AAbsD1(AD1 a){return __builtin_fabs(a);} @@ -310,7 +310,7 @@ A_STATIC AL1 AMaxL1(AL1 a,AL1 b){return a>b?a:b;} A_STATIC AU1 AMaxU1(AU1 a,AU1 b){return a>b?a:b;} //------------------------------------------------------------------------------------------------------------------------------ - // These follow the convention that A integer types don't have signage, until they are operated on. + // These follow the convention that A integer types don't have signage, until they are operated on. A_STATIC AL1 AMaxSL1(AL1 a,AL1 b){return (ASL1_(a)>ASL1_(b))?a:b;} A_STATIC AU1 AMaxSU1(AU1 a,AU1 b){return (ASU1_(a)>ASU1_(b))?a:b;} //------------------------------------------------------------------------------------------------------------------------------ @@ -1071,7 +1071,7 @@ #define AU1_AH1_AF1(a) AU1_AH1_AF1_x(AF1(a)) //------------------------------------------------------------------------------------------------------------------------------ AU1 AU1_AH2_AF2_x(AF2 a){return f32tof16(a.x)|(f32tof16(a.y)<<16);} - #define AU1_AH2_AF2(a) AU1_AH2_AF2_x(AF2(a)) + #define AU1_AH2_AF2(a) AU1_AH2_AF2_x(AF2(a)) #define AU1_AB4Unorm_AF4(x) D3DCOLORtoUBYTE4(AF4(x)) //------------------------------------------------------------------------------------------------------------------------------ AF2 AF2_AH2_AU1_x(AU1 x){return AF2(f16tof32(x&0xFFFF),f16tof32(x>>16));} @@ -1588,7 +1588,7 @@ // - V_CVT_F32_UBYTE{0,1,2,3} - Unsigned byte to float. // - V_CVT_PKACC_U8_F32 - Float to unsigned byte (does bit-field insert into 32-bit integer). // V_PERM_B32 does byte packing with ability to zero fill bytes as well. -// - Can pull out byte values from two sources, and zero fill upper 8-bits of packed hi and lo. +// - Can pull out byte values from two sources, and zero fill upper 8-bits of packed hi and lo. //------------------------------------------------------------------------------------------------------------------------------ // BYTE : FLOAT - ABuc{0,1,2,3}{To,From}U1() - Designed for V_CVT_F32_UBYTE* and V_CVT_PKACCUM_U8_F32 ops. // ==== ===== @@ -1683,8 +1683,8 @@ // ENCODING (without zero-based encoding) // ======== // 0 = unused (can be used to mean something else) -// 1 = lowest value -// 128 = exact zero center (zero based encoding +// 1 = lowest value +// 128 = exact zero center (zero based encoding // 255 = highest value //------------------------------------------------------------------------------------------------------------------------------ // Zero-based [Zb] flips the MSB bit of the byte (making 128 "exact zero" actually zero). @@ -1696,8 +1696,8 @@ // 1 : -126/512 // 2 : -125/512 // ... -// 128 : 0 -// ... +// 128 : 0 +// ... // 255 : 127/512 // : 1/4 (just outside the encoding range) //============================================================================================================================== @@ -1918,7 +1918,7 @@ // - Parabolic takes 8 clocks and 8 issue slots (only fract is non-packed). AH1 APSinH1(AH1 x){return x*abs(x)-x;} AH2 APSinH2(AH2 x){return x*abs(x)-x;} // AND,FMA - AH1 APCosH1(AH1 x){x=AFractH1(x*AH1_(0.5)+AH1_(0.75));x=x*AH1_(2.0)-AH1_(1.0);return APSinH1(x);} + AH1 APCosH1(AH1 x){x=AFractH1(x*AH1_(0.5)+AH1_(0.75));x=x*AH1_(2.0)-AH1_(1.0);return APSinH1(x);} AH2 APCosH2(AH2 x){x=AFractH2(x*AH2_(0.5)+AH2_(0.75));x=x*AH2_(2.0)-AH2_(1.0);return APSinH2(x);} // 3x FMA, 2xFRACT, AND AH2 APSinCosH1(AH1 x){AH1 y=AFractH1(x*AH1_(0.5)+AH1_(0.75));y=y*AH1_(2.0)-AH1_(1.0);return APSinH2(AH2(x,y));} #endif @@ -2152,9 +2152,9 @@ return clamp(j.xxx,c*j.yyy,pow(c,j.zzz)*k.xxx+k.yyy);} //------------------------------------------------------------------------------------------------------------------------------ // Note 'rcpX' is '1/x', where the 'x' is what would be used in AFromGamma(). - AF1 AToGammaF1(AF1 c,AF1 rcpX){return pow(c,AF1_(rcpX));} - AF2 AToGammaF2(AF2 c,AF1 rcpX){return pow(c,AF2_(rcpX));} - AF3 AToGammaF3(AF3 c,AF1 rcpX){return pow(c,AF3_(rcpX));} + AF1 AToGammaF1(AF1 c,AF1 rcpX){return pow(c,AF1_(rcpX));} + AF2 AToGammaF2(AF2 c,AF1 rcpX){return pow(c,AF2_(rcpX));} + AF3 AToGammaF3(AF3 c,AF1 rcpX){return pow(c,AF3_(rcpX));} //------------------------------------------------------------------------------------------------------------------------------ AF1 AToPqF1(AF1 x){AF1 p=pow(x,AF1_(0.159302)); return pow((AF1_(0.835938)+AF1_(18.8516)*p)/(AF1_(1.0)+AF1_(18.6875)*p),AF1_(78.8438));} @@ -2188,9 +2188,9 @@ AF3 AFrom709F3(AF3 c){AF3 j=AF3(0.081/4.5,1.0/4.5,1.0/0.45);AF2 k=AF2(1.0/1.099,0.099/1.099); return AZolSelF3(AZolSignedF3(c-j.xxx),c*j.yyy,pow(c*k.xxx+k.yyy,j.zzz));} //------------------------------------------------------------------------------------------------------------------------------ - AF1 AFromGammaF1(AF1 c,AF1 x){return pow(c,AF1_(x));} - AF2 AFromGammaF2(AF2 c,AF1 x){return pow(c,AF2_(x));} - AF3 AFromGammaF3(AF3 c,AF1 x){return pow(c,AF3_(x));} + AF1 AFromGammaF1(AF1 c,AF1 x){return pow(c,AF1_(x));} + AF2 AFromGammaF2(AF2 c,AF1 x){return pow(c,AF2_(x));} + AF3 AFromGammaF3(AF3 c,AF1 x){return pow(c,AF3_(x));} //------------------------------------------------------------------------------------------------------------------------------ AF1 AFromPqF1(AF1 x){AF1 p=pow(x,AF1_(0.0126833)); return pow(ASatF1(p-AF1_(0.835938))/(AF1_(18.8516)-AF1_(18.6875)*p),AF1_(6.27739));} @@ -2292,14 +2292,14 @@ // Details, // LANE TO 8x8 MAPPING // =================== - // 00 01 08 09 10 11 18 19 + // 00 01 08 09 10 11 18 19 // 02 03 0a 0b 12 13 1a 1b // 04 05 0c 0d 14 15 1c 1d - // 06 07 0e 0f 16 17 1e 1f - // 20 21 28 29 30 31 38 39 + // 06 07 0e 0f 16 17 1e 1f + // 20 21 28 29 30 31 38 39 // 22 23 2a 2b 32 33 3a 3b // 24 25 2c 2d 34 35 3c 3d - // 26 27 2e 2f 36 37 3e 3f + // 26 27 2e 2f 36 37 3e 3f AU2 ARmpRed8x8(AU1 a){return AU2(ABfiM(ABfe(a,2u,3u),a,1u),ABfiM(ABfe(a,3u,3u),ABfe(a,1u,2u),2u));} //============================================================================================================================== #ifdef A_HALF @@ -2356,7 +2356,7 @@ // ... // 1023 = 2^(-14)*(1-2^(-10)) = 2^(-14)*(1-1/1024) ... last denormal value // 1024 = 2^(-14) = 1/16384 .......................... first normal value that still maps to integers -// 2047 .............................................. last normal value that still maps to integers +// 2047 .............................................. last normal value that still maps to integers // Scaling limits, // 2^15 = 32768 ...................................... largest power of 2 scaling // Largest pow2 conversion mapping is at *32768, diff --git a/examples/46-fsr/ffx_fsr1.h b/examples/46-fsr/ffx_fsr1.h index bd872845481..b82f04db229 100644 --- a/examples/46-fsr/ffx_fsr1.h +++ b/examples/46-fsr/ffx_fsr1.h @@ -35,12 +35,12 @@ // ===== // FSR is a collection of algorithms relating to generating a higher resolution image. // This specific header focuses on single-image non-temporal image scaling, and related tools. -// +// // The core functions are EASU and RCAS: // [EASU] Edge Adaptive Spatial Upsampling ....... 1x to 4x area range spatial scaling, clamped adaptive elliptical filter. // [RCAS] Robust Contrast Adaptive Sharpening .... A non-scaling variation on CAS. // RCAS needs to be applied after EASU as a separate pass. -// +// // Optional utility functions are: // [LFGA] Linear Film Grain Applicator ........... Tool to apply film grain after scaling. // [SRTM] Simple Reversible Tone-Mapper .......... Linear HDR {0 to FP16_MAX} to {0 to 1} and back. @@ -80,7 +80,7 @@ // and limits output to the minimum and maximum of that neighborhood. //------------------------------------------------------------------------------------------------------------------------------ // Input image requirements: -// +// // Color needs to be encoded as 3 channel[red, green, blue](e.g.XYZ not supported) // Each channel needs to be in the range[0, 1] // Any color primaries are supported @@ -90,11 +90,11 @@ // There should be no noise in the input that is not at input pixel granularity // For performance purposes, use 32bpp formats //------------------------------------------------------------------------------------------------------------------------------ -// Best to apply EASU at the end of the frame after tonemapping +// Best to apply EASU at the end of the frame after tonemapping // but before film grain or composite of the UI. //------------------------------------------------------------------------------------------------------------------------------ // Example of including this header for D3D HLSL : -// +// // #define A_GPU 1 // #define A_HLSL 1 // #define A_HALF 1 @@ -103,9 +103,9 @@ // #define FSR_RCAS_H 1 // //declare input callbacks // #include "ffx_fsr1.h" -// +// // Example of including this header for Vulkan GLSL : -// +// // #define A_GPU 1 // #define A_GLSL 1 // #define A_HALF 1 @@ -114,9 +114,9 @@ // #define FSR_RCAS_H 1 // //declare input callbacks // #include "ffx_fsr1.h" -// +// // Example of including this header for Vulkan HLSL : -// +// // #define A_GPU 1 // #define A_HLSL 1 // #define A_HLSL_6_2 1 @@ -127,11 +127,11 @@ // #define FSR_RCAS_H 1 // //declare input callbacks // #include "ffx_fsr1.h" -// +// // Example of declaring the required input callbacks for GLSL : // The callbacks need to gather4 for each color channel using the specified texture coordinate 'p'. // EASU uses gather4 to reduce position computation logic and for free Arrays of Structures to Structures of Arrays conversion. -// +// // AH4 FsrEasuRH(AF2 p){return AH4(textureGather(sampler2D(tex,sam),p,0));} // AH4 FsrEasuGH(AF2 p){return AH4(textureGather(sampler2D(tex,sam),p,1));} // AH4 FsrEasuBH(AF2 p){return AH4(textureGather(sampler2D(tex,sam),p,2));} @@ -611,7 +611,7 @@ A_STATIC void FsrEasuConOffset( // RCAS is based on the following logic. // RCAS uses a 5 tap filter in a cross pattern (same as CAS), // w n -// w 1 w for taps w m e +// w 1 w for taps w m e // w s // Where 'w' is the negative lobe weight. // output = (w*(n+e+w+s)+m)/(4*w+1) @@ -630,16 +630,16 @@ A_STATIC void FsrEasuConOffset( // This is used as a noise detection filter, to reduce the effect of RCAS on grain, and focus on real edges. // // GLSL example for the required callbacks : -// +// // AH4 FsrRcasLoadH(ASW2 p){return AH4(imageLoad(imgSrc,ASU2(p)));} // void FsrRcasInputH(inout AH1 r,inout AH1 g,inout AH1 b) // { // //do any simple input color conversions here or leave empty if none needed // } -// +// // FsrRcasCon need to be called from the CPU or GPU to set up constants. // Including a GPU example here, the 'con' value would be stored out to a constant buffer. -// +// // AU4 con; // FsrRcasCon(con, // 0.0); // The scale is {0.0 := maximum sharpness, to N>0, where N is the number of stops (halving) of the reduction of sharpness}. @@ -691,7 +691,7 @@ AF1 sharpness){ AU2 ip, // Integer pixel position in output. AU4 con){ // Constant generated by RcasSetup(). // Algorithm uses minimal 3x3 pixel neighborhood. - // b + // b // d e f // h ASU2 sp=ASU2(ip); @@ -766,7 +766,7 @@ AF1 sharpness){ pixR=(lobe*bR+lobe*dR+lobe*hR+lobe*fR+eR)*rcpL; pixG=(lobe*bG+lobe*dG+lobe*hG+lobe*fG+eG)*rcpL; pixB=(lobe*bB+lobe*dB+lobe*hB+lobe*fB+eB)*rcpL; - return;} + return;} #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -789,7 +789,7 @@ AF1 sharpness){ AU2 ip, // Integer pixel position in output. AU4 con){ // Constant generated by RcasSetup(). // Sharpening algorithm uses minimal 3x3 pixel neighborhood. - // b + // b // d e f // h ASW2 sp=ASW2(ip); diff --git a/examples/46-fsr/fs_fsr_forward.sc b/examples/46-fsr/fs_fsr_forward.sc index d60110d89f8..068a49c0f8a 100644 --- a/examples/46-fsr/fs_fsr_forward.sc +++ b/examples/46-fsr/fs_fsr_forward.sc @@ -31,7 +31,7 @@ mat3 cotangentFrame(vec3 N, vec3 p, vec2 uv) vec3 dp1perp = cross(N, dp1); vec3 T = dp2perp * duv1.x + dp1perp * duv2.x; vec3 B = dp2perp * duv1.y + dp1perp * duv2.y; - + // construct a scale-invariant frame float invMax = inversesqrt(max(dot(T,T), dot(B,B))); return mat3(T*invMax, B*invMax, N); @@ -43,13 +43,13 @@ void main() // get vertex normal vec3 normal = normalize(v_normal); - + // get normal map normal, unpack, and calculate z vec3 normalMap; normalMap.xy = texture2D(s_normal, v_texcoord0).xy; normalMap.xy = normalMap.xy * 2.0 - 1.0; normalMap.z = sqrt(1.0 - dot(normalMap.xy, normalMap.xy)); - + // swap x and y, because the brick texture looks flipped, don't copy this... normalMap.xy = -normalMap.yx; diff --git a/examples/49-hextile/fs_hextile.sc b/examples/49-hextile/fs_hextile.sc index bed9e394615..bfdc4ef3b3f 100644 --- a/examples/49-hextile/fs_hextile.sc +++ b/examples/49-hextile/fs_hextile.sc @@ -4,18 +4,18 @@ $input v_position, v_texcoord0 * Copyright 2022 Preetish Kakkar. All rights reserved. * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ - + /* Most of the code is inspired/ported from https://github.com/mmikk/hextile-demo/blob/main/hextile-demo/shader_lighting.hlsl - + The basic idea behind the algorithm is to use tiling & blending schema but instead of regular linear blending, the algorithm uses blending operator that prevents visual artifacts caused by linear blending - + We partition the uv-space on a triangle grid and compute the local triangle and the barycentric coordinates inside the triangle. We use a hash function to associate a random offset with each vertex of the triangle grid and use this random offset to fetch the example texture. - + Finally, we blend the result using the barycentric coordinates as blending weights. - + */ #include "../common/common.sh" @@ -56,7 +56,7 @@ mat2 LoadRot2x2(vec2 idx, float rotStrength) float angle = abs(idx.x * idx.y) + abs(idx.x + idx.y) + M_PI; // remap to +/-pi - //angle = fmod(angle, 2.0*M_PI); + //angle = fmod(angle, 2.0*M_PI); if (angle < 0.0) angle += 2.0 * M_PI; if (angle > M_PI) angle -= 2.0 * M_PI; @@ -108,7 +108,7 @@ void TriangleGrid(out float w1, out float w2, out float w3, vec2 uv) { // Scaling of the input - uv *= 2.0 * sqrt(3.0); // controls the size of the input with respect to the size of the tiles. + uv *= 2.0 * sqrt(3.0); // controls the size of the input with respect to the size of the tiles. // Skew input space into simplex triangle grid const mat2 gridToSkewedGrid = @@ -157,7 +157,7 @@ void hex2colTex(out vec4 color, out vec3 weights, vec2 uv, vec2 uv3 = mul(uv - cen3, rot3) + cen3 + hash(vertex3); // Fetch input - // We could simply use texture2D function, however, the screen space derivatives could be broken + // We could simply use texture2D function, however, the screen space derivatives could be broken // since we are using random offsets, we use texture2DGrad to make sure that we pass correct derivatives explicitly. vec4 c1 = texture2DGrad(s_trx_d, uv1, mul(dSTdx, rot1), mul(dSTdy, rot1)); @@ -175,7 +175,7 @@ void hex2colTex(out vec4 color, out vec3 weights, vec2 uv, W /= (W.x + W.y + W.z); if (r != 0.5) W = Gain3(W, r); - // blend weights with color linearly + // blend weights with color linearly // histogram preserving blending will be better but requires precompution step to create histogram texture color = W.x * c1 + W.y * c2 + W.z * c3; weights = ProduceHexWeights(W.xyz, vertex1, vertex2, vertex3); @@ -202,16 +202,16 @@ void main() vec3 sp = GetTileRate() * surfPosInWorld; vec2 uv0 = vec2(sp.x, sp.z); - - if(u_useRegularTiling > 0.0) + + if(u_useRegularTiling > 0.0) { gl_FragColor = vec4(texture2D(s_trx_d, uv0.xy)); - } - else + } + else { vec3 color, weights; FetchColorAndWeight(color, weights, uv0); - + if (u_showWeights > 0.0) { gl_FragColor = vec4(weights, 1.0); @@ -222,5 +222,5 @@ void main() } } - + } diff --git a/examples/assets/meshes/tree1b_lod0_2.obj b/examples/assets/meshes/tree1b_lod0_2.obj index 84b91caf004..addb8d634df 100644 --- a/examples/assets/meshes/tree1b_lod0_2.obj +++ b/examples/assets/meshes/tree1b_lod0_2.obj @@ -7585,4 +7585,3 @@ vn -0.567090 0.776659 -0.274245 vn -0.672016 0.735228 0.088511 vn -0.516133 0.848043 0.120122 vn -0.398125 0.839839 -0.369008 - diff --git a/examples/assets/meshes/tree1b_lod1_2.obj b/examples/assets/meshes/tree1b_lod1_2.obj index 8340869d913..e34c9178f86 100644 --- a/examples/assets/meshes/tree1b_lod1_2.obj +++ b/examples/assets/meshes/tree1b_lod1_2.obj @@ -5291,4 +5291,3 @@ vn -0.516133 0.848043 0.120122 vn -0.294180 0.754159 -0.587114 vn -0.371250 0.704178 -0.605233 vn -0.672016 0.735228 0.088511 - diff --git a/examples/assets/meshes/tree1b_lod2_2.obj b/examples/assets/meshes/tree1b_lod2_2.obj index 75ac162be63..aaa69716085 100644 --- a/examples/assets/meshes/tree1b_lod2_2.obj +++ b/examples/assets/meshes/tree1b_lod2_2.obj @@ -2609,4 +2609,3 @@ vn -0.516133 0.848043 0.120122 vn -0.294180 0.754159 -0.587114 vn -0.523407 0.573721 -0.629991 vn -0.741276 0.667292 0.072325 - diff --git a/examples/common/cube_atlas.h b/examples/common/cube_atlas.h index d823e63f7c8..300275b93d6 100644 --- a/examples/common/cube_atlas.h +++ b/examples/common/cube_atlas.h @@ -1,4 +1,4 @@ -/* +/* * Copyright 2013 Jeremie Roy. All rights reserved. * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ diff --git a/examples/common/font/font_manager.cpp b/examples/common/font/font_manager.cpp index 2af76f259d8..92e497a4125 100644 --- a/examples/common/font/font_manager.cpp +++ b/examples/common/font/font_manager.cpp @@ -522,7 +522,7 @@ float FontManager::getKerning(FontHandle _handle, CodePoint _prevCodePoint, Code if (isValid(cachedFont.masterFontHandle)) { CachedFont& baseFont = m_cachedFonts[cachedFont.masterFontHandle.idx]; - return baseFont.trueTypeFont->m_scale + return baseFont.trueTypeFont->m_scale * stbtt_GetCodepointKernAdvance(&baseFont.trueTypeFont->m_font, _prevCodePoint, _codePoint) * cachedFont.fontInfo.scale; } diff --git a/examples/common/font/fs_font_distance_field.sc b/examples/common/font/fs_font_distance_field.sc index 8bc3e1d94d1..91a934c9794 100644 --- a/examples/common/font/fs_font_distance_field.sc +++ b/examples/common/font/fs_font_distance_field.sc @@ -9,7 +9,7 @@ uniform vec4 u_params; #define u_distanceMultiplier u_params.y void main() -{ +{ vec4 color = textureCube(s_texColor, v_texcoord0.xyz); int index = int(v_texcoord0.w*4.0 + 0.5); float rgba[4]; diff --git a/examples/common/font/utf8.cpp b/examples/common/font/utf8.cpp index 105a52eec28..de685ef8326 100644 --- a/examples/common/font/utf8.cpp +++ b/examples/common/font/utf8.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2008-2009 Bjoern Hoehrmann // See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details. // -// Permission is hereby granted, free of charge, to any person obtaining a +// Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, diff --git a/examples/common/imgui/fs_ocornut_imgui.sc b/examples/common/imgui/fs_ocornut_imgui.sc index f07729cb94c..0b9c9828b2c 100644 --- a/examples/common/imgui/fs_ocornut_imgui.sc +++ b/examples/common/imgui/fs_ocornut_imgui.sc @@ -7,5 +7,5 @@ SAMPLER2D(s_tex, 0); void main() { vec4 texel = texture2D(s_tex, v_texcoord0); - gl_FragColor = texel * v_color0; + gl_FragColor = texel * v_color0; } diff --git a/examples/common/imgui/vs_ocornut_imgui.sc b/examples/common/imgui/vs_ocornut_imgui.sc index c4f6eb10cdf..2d203f5bc4b 100644 --- a/examples/common/imgui/vs_ocornut_imgui.sc +++ b/examples/common/imgui/vs_ocornut_imgui.sc @@ -10,4 +10,3 @@ void main() v_texcoord0 = a_texcoord0; v_color0 = a_color0; } - diff --git a/examples/runtime/shaders/pssl/.gitignore b/examples/runtime/shaders/pssl/.gitignore index 5e4debcc105..72e8ffc0db8 100644 --- a/examples/runtime/shaders/pssl/.gitignore +++ b/examples/runtime/shaders/pssl/.gitignore @@ -1 +1 @@ -* +* diff --git a/examples/runtime/temp/.gitignore b/examples/runtime/temp/.gitignore index 5e4debcc105..72e8ffc0db8 100644 --- a/examples/runtime/temp/.gitignore +++ b/examples/runtime/temp/.gitignore @@ -1 +1 @@ -* +* diff --git a/examples/runtime/text/sherlock_holmes_a_scandal_in_bohemia_arthur_conan_doyle.txt b/examples/runtime/text/sherlock_holmes_a_scandal_in_bohemia_arthur_conan_doyle.txt index 523a31cfd99..115c5b216b4 100644 --- a/examples/runtime/text/sherlock_holmes_a_scandal_in_bohemia_arthur_conan_doyle.txt +++ b/examples/runtime/text/sherlock_holmes_a_scandal_in_bohemia_arthur_conan_doyle.txt @@ -1,4 +1,4 @@ -Stripped down from project Gutenberg's +Stripped down from project Gutenberg's "The Adventures of Sherlock Holmes", by Arthur Conan Doyle This eBook is for the use of anyone anywhere at no cost and with @@ -1133,4 +1133,4 @@ of Bohemia, and how the best plans of Mr. Sherlock Holmes were beaten by a woman's wit. He used to make merry over the cleverness of women, but I have not heard him do it of late. And when he speaks of Irene Adler, or when he refers to her -photograph, it is always under the honourable title of the woman. \ No newline at end of file +photograph, it is always under the honourable title of the woman. diff --git a/include/bgfx/c99/bgfx.h b/include/bgfx/c99/bgfx.h index 8c6a13fa93d..3c231800ca7 100644 --- a/include/bgfx/c99/bgfx.h +++ b/include/bgfx/c99/bgfx.h @@ -550,7 +550,7 @@ typedef struct bgfx_caps_limits_s typedef struct bgfx_caps_s { bgfx_renderer_type_t rendererType; /** Renderer backend type. See: `bgfx::RendererType` */ - + /** * Supported functionality. * @attention See `BGFX_CAPS_*` flags at https://bkaradzic.github.io/bgfx/bgfx.html#available-caps @@ -563,7 +563,7 @@ typedef struct bgfx_caps_s uint8_t numGPUs; /** Number of enumerated GPUs. */ bgfx_caps_gpu_t gpu[4]; /** Enumerated GPUs. */ bgfx_caps_limits_t limits; /** Renderer runtime limits. */ - + /** * Supported texture format capabilities flags: * - `BGFX_CAPS_FORMAT_TEXTURE_NONE` - Texture format is not supported. @@ -611,25 +611,25 @@ typedef struct bgfx_internal_data_s typedef struct bgfx_platform_data_s { void* ndt; /** Native display type (*nix specific). */ - + /** * Native window handle. If `NULL`, bgfx will create a headless * context/device, provided the rendering API supports it. */ void* nwh; - + /** * GL context, D3D device, or Vulkan device. If `NULL`, bgfx * will create context/device. */ void* context; - + /** * GL back-buffer, or D3D render target view. If `NULL` bgfx will * create back-buffer color surface. */ void* backBuffer; - + /** * Backbuffer depth/stencil. If `NULL`, bgfx will create a back-buffer * depth/stencil surface. @@ -674,14 +674,14 @@ typedef struct bgfx_init_limits_s */ typedef struct bgfx_init_s { - + /** * Select rendering backend. When set to RendererType::Count * a default rendering backend will be selected appropriate to the platform. * See: `bgfx::RendererType` */ bgfx_renderer_type_t type; - + /** * Vendor PCI ID. If set to `BGFX_PCI_ID_NONE`, discrete and integrated * GPUs will be prioritised. @@ -694,7 +694,7 @@ typedef struct bgfx_init_s * - `BGFX_PCI_ID_MICROSOFT` - Microsoft adapter. */ uint16_t vendorId; - + /** * Device ID. If set to 0 it will select first device, or device with * matching ID. @@ -706,13 +706,13 @@ typedef struct bgfx_init_s bgfx_platform_data_t platformData; /** Platform data. */ bgfx_resolution_t resolution; /** Backbuffer resolution and reset parameters. See: `bgfx::Resolution`. */ bgfx_init_limits_t limits; /** Configurable runtime limits parameters. */ - + /** * Provide application specific callback interface. * See: `bgfx::CallbackI` */ bgfx_callback_interface_t* callback; - + /** * Custom allocator. When a custom allocator is not * specified, bgfx uses the CRT allocator. Bgfx assumes diff --git a/scripts/bgfx.doxygen b/scripts/bgfx.doxygen index a78861fdbf7..d8234cec3c4 100644 --- a/scripts/bgfx.doxygen +++ b/scripts/bgfx.doxygen @@ -1,1808 +1,1808 @@ -# Doxyfile 1.8.2 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" "). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or sequence of words) that should -# identify the project. Note that if you do not use Doxywizard you need -# to put quotes around the project name if it contains spaces. - -PROJECT_NAME = "bgfx" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer -# a quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "Cross-platform rendering library." - -# With the PROJECT_LOGO tag one can specify an logo or icon that is -# included in the documentation. The maximum height of the logo should not -# exceed 55 pixels and the maximum width should not exceed 200 pixels. -# Doxygen will copy the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = .build/docs - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. Note that you specify absolute paths here, but also -# relative paths, which will be relative from the directory where doxygen is -# started. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful if your file system -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = YES - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding -# "class=itcl::class" will allow you to use the command class in the -# itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, -# and language is one of the parsers supported by doxygen: IDL, Java, -# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, -# C++. For instance to make doxygen treat .inc files as Fortran files (default -# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note -# that for custom extensions you also need to set FILE_PATTERNS otherwise the -# files are not read by doxygen. - -EXTENSION_MAPPING = - -# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all -# comments according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you -# can mix doxygen, HTML, and XML commands with Markdown formatting. -# Disable only in case of backward compatibilities issues. - -MARKDOWN_SUPPORT = YES - -# When enabled doxygen tries to link words that correspond to documented classes, -# or namespaces to their corresponding documentation. Such a link can be -# prevented in individual cases by by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also makes the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter and setter methods for a property. Setting this option to YES (the default) will make doxygen replace the get and set methods by a property in the documentation. This will only work if the methods are indeed getting or setting a simple type. If this is not the case, or you want to show the methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = NO - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and -# unions are shown inside the group in which they are included (e.g. using -# @ingroup) instead of on a separate page (for HTML and Man pages) or -# section (for LaTeX and RTF). - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and -# unions with only public data fields will be shown inline in the documentation -# of the scope in which they are defined (i.e. file, namespace, or group -# documentation), provided this scope is documented. If set to NO (the default), -# structs, classes, and unions are shown on a separate page (for HTML and Man -# pages) or section (for LaTeX and RTF). - -INLINE_SIMPLE_STRUCTS = YES - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = YES - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penalty. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will roughly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. - -SYMBOL_CACHE_SIZE = 0 - -# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be -# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given -# their name and scope. Since this can be an expensive process and often the -# same symbol appear multiple times in the code, doxygen keeps a cache of -# pre-resolved symbols. If the cache is too small doxygen will become slower. -# If the cache is too large, memory is wasted. The cache size is given by this -# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespaces are hidden. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen -# will list include files with double quotes in the documentation -# rather than with sharp brackets. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen -# will sort the (brief and detailed) documentation of class members so that -# constructors and destructors are listed first. If set to NO (the default) -# the constructors will appear in the respective orders defined by -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to -# do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even -# if there is only one candidate or it is obvious which candidate to choose -# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen -# will still accept a match between prototype and implementation in such cases. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or macro consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and macros in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. -# This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. -# You can optionally specify a file name after the option, if omitted -# DoxygenLayout.xml will be used as the name of the layout file. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files -# containing the references data. This must be a list of .bib files. The -# .bib extension is automatically appended if omitted. Using this command -# requires the bibtex tool to be installed. See also -# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style -# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this -# feature you need bibtex and perl available in the search path. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_NO_PARAMDOC option can be enabled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = include/bgfx.h README.md - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh -# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py -# *.f90 *.f *.for *.vhd *.vhdl - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. -# If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. -# Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. -# The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty or if -# non of the patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) -# and it is also possible to disable source filtering for a specific pattern -# using *.ext= (so without naming a filter). This option only has effect when -# FILTER_SOURCE_FILES is enabled. - -FILTER_SOURCE_PATTERNS = - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C, C++ and Fortran comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. -# Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. Note that when using a custom header you are responsible -# for the proper inclusion of any scripts and style sheets that doxygen -# needs, which is dependent on the configuration options used. -# It is advised to generate a default header using "doxygen -w html -# header.html footer.html stylesheet.css YourConfigFile" and then modify -# that header. Note that the header is subject to change so you typically -# have to redo this when upgrading to a newer version of doxygen or when -# changing the value of configuration settings such as GENERATE_TREEVIEW! - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If left blank doxygen will -# generate a default style sheet. Note that it is recommended to use -# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this -# tag will in the future become obsolete. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional -# user-defined cascading style sheet that is included after the standard -# style sheets created by doxygen. Using this option one can overrule -# certain style aspects. This is preferred over using HTML_STYLESHEET -# since it does not replace the standard style sheet and is therefor more -# robust against future updates. Doxygen will copy the style sheet file to -# the output directory. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that -# the files will be copied as-is; there are no commands or markers available. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the style sheet and background images -# according to this color. Hue is specified as an angle on a colorwheel, -# see http://en.wikipedia.org/wiki/Hue for more information. -# For instance the value 0 represents red, 60 is yellow, 120 is green, -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. -# The allowed range is 0 to 359. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of -# the colors in the HTML output. For a value of 0 the output will use -# grayscales only. A value of 255 will produce the most vivid colors. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to -# the luminance component of the colors in the HTML output. Values below -# 100 gradually make the output lighter, whereas values above 100 make -# the output darker. The value divided by 100 is the actual gamma applied, -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, -# and 100 does not change the gamma. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting -# this to NO can help when comparing the output of multiple runs. - -HTML_TIMESTAMP = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of -# entries shown in the various tree structured indices initially; the user -# can expand and collapse entries dynamically later on. Doxygen will expand -# the tree to such a level that at most the specified number of entries are -# visible (unless a fully collapsed tree already exceeds this amount). -# So setting the number of entries 1 will produce a full collapsed tree by -# default. 0 is a special value representing an infinite number of entries -# and will result in a full expanded tree by default. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely -# identify the documentation publisher. This should be a reverse domain-name -# style string, e.g. com.mycompany.MyDocSet.documentation. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) -# at top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. Since the tabs have the same information as the -# navigation tree you can set this option to NO if you already set -# GENERATE_TREEVIEW to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. -# Since the tree basically has the same information as the tab index you -# could consider to set DISABLE_INDEX to NO when enabling this option. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values -# (range [0,1..20]) that doxygen will group on one line in the generated HTML -# documentation. Note that a value of 0 will completely suppress the enum -# values from appearing in the overview section. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open -# links to external symbols imported via tag files in a separate window. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are -# not supported properly for IE 6.0, but are supported on all modern browsers. -# Note that when changing this option you need to delete any form_*.png files -# in the HTML output before the changes have effect. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax -# (see http://www.mathjax.org) which uses client side Javascript for the -# rendering instead of using prerendered bitmaps. Use this if you do not -# have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you may also need to install MathJax separately and -# configure the path to it using the MATHJAX_RELPATH option. - -USE_MATHJAX = NO - -# When MathJax is enabled you need to specify the location relative to the -# HTML output directory using the MATHJAX_RELPATH option. The destination -# directory should contain the MathJax.js script. For instance, if the mathjax -# directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to -# the MathJax Content Delivery Network so you can quickly see the result without -# installing MathJax. -# However, it is strongly recommended to install a local -# copy of MathJax from http://www.mathjax.org before deployment. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension -# names that should be enabled during MathJax rendering. - -MATHJAX_EXTENSIONS = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box -# for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets -# (GENERATE_DOCSET) there is already a search function so this one should -# typically be disabled. For large projects the javascript based search engine -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. - -SEARCHENGINE = YES - -# When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a PHP enabled web server instead of at the web client -# using Javascript. Doxygen will generate the search PHP script and index -# file to put on the web server. The advantage of the server -# based approach is that it scales better to large projects and allows -# full text search. The disadvantages are that it is more difficult to setup -# and does not have live searching capabilities. - -SERVER_BASED_SEARCH = NO - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = YES - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. -# Note that when enabling USE_PDFLATEX this option is only used for -# generating bitmaps for formulas in the HTML output, but not in the -# Makefile that is written to the output directory. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4 - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for -# the generated latex document. The footer should contain everything after -# the last chapter. If it is left blank doxygen will generate a -# standard footer. Notice: only use this tag if you know what you are doing! - -LATEX_FOOTER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = YES - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = YES - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -# If LATEX_SOURCE_CODE is set to YES then doxygen will include -# source code with syntax highlighting in the LaTeX output. -# Note that which sources are shown also depends on other settings -# such as SOURCE_BROWSER. - -LATEX_SOURCE_CODE = NO - -# The LATEX_BIB_STYLE tag can be used to specify the style to use for the -# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See -# http://en.wikipedia.org/wiki/BibTeX for more info. - -LATEX_BIB_STYLE = plain - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load style sheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. -# This is useful -# if you want to understand what is going on. -# On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# pointed to by INCLUDE_PATH will be searched when a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition that -# overrules the definition found in the source code. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all references to function-like macros -# that are alone on a line, have an all uppercase name, and do not end with a -# semicolon, because these will confuse the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. For each -# tag file the location of the external documentation should be added. The -# format of a tag file without this location is as follows: -# -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths -# or URLs. Note that each tag file must have a unique name (where the name does -# NOT include the path). If a tag file is not located in the directory in which -# doxygen is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option also works with HAVE_DOT disabled, but it is recommended to -# install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is -# allowed to run in parallel. When set to 0 (the default) doxygen will -# base this on the number of processors available in the system. You can set it -# explicitly to a value larger than 0 to get control over the balance -# between CPU load and processing speed. - -DOT_NUM_THREADS = 0 - -# By default doxygen will use the Helvetica font for all dot files that -# doxygen generates. When you want a differently looking font you can specify -# the font name using DOT_FONTNAME. You need to make sure dot is able to find -# the font, which can be done by putting it in a standard location or by setting -# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the -# directory containing the font. - -DOT_FONTNAME = Helvetica - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the Helvetica font. -# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to -# set the path where dot can find it. - -DOT_FONTPATH = - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If the UML_LOOK tag is enabled, the fields and methods are shown inside -# the class node. If there are many fields or methods and many nodes the -# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS -# threshold limits the number of items for each type to make the size more -# managable. Set this to 0 for no limit. Note that the threshold may be -# exceeded by 50% before the limit is enforced. - -UML_LIMIT_NUM_FIELDS = 10 - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will generate a graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are svg, png, jpg, or gif. -# If left blank png will be used. If you choose svg you need to set -# HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible in IE 9+ (other browsers do not have this requirement). - -DOT_IMAGE_FORMAT = png - -# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to -# enable generation of interactive SVG images that allow zooming and panning. -# Note that this requires a modern browser other than Internet Explorer. -# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you -# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible. Older versions of IE do not have SVG support. - -INTERACTIVE_SVG = NO - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the -# \mscfile command). - -MSCFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES +# Doxyfile 1.8.2 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" "). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or sequence of words) that should +# identify the project. Note that if you do not use Doxywizard you need +# to put quotes around the project name if it contains spaces. + +PROJECT_NAME = "bgfx" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer +# a quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "Cross-platform rendering library." + +# With the PROJECT_LOGO tag one can specify an logo or icon that is +# included in the documentation. The maximum height of the logo should not +# exceed 55 pixels and the maximum width should not exceed 200 pixels. +# Doxygen will copy the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = .build/docs + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. Note that you specify absolute paths here, but also +# relative paths, which will be relative from the directory where doxygen is +# started. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = YES + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding +# "class=itcl::class" will allow you to use the command class in the +# itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, +# and language is one of the parsers supported by doxygen: IDL, Java, +# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, +# C++. For instance to make doxygen treat .inc files as Fortran files (default +# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note +# that for custom extensions you also need to set FILE_PATTERNS otherwise the +# files are not read by doxygen. + +EXTENSION_MAPPING = + +# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all +# comments according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you +# can mix doxygen, HTML, and XML commands with Markdown formatting. +# Disable only in case of backward compatibilities issues. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented classes, +# or namespaces to their corresponding documentation. Such a link can be +# prevented in individual cases by by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter and setter methods for a property. Setting this option to YES (the default) will make doxygen replace the get and set methods by a property in the documentation. This will only work if the methods are indeed getting or setting a simple type. If this is not the case, or you want to show the methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and +# unions are shown inside the group in which they are included (e.g. using +# @ingroup) instead of on a separate page (for HTML and Man pages) or +# section (for LaTeX and RTF). + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and +# unions with only public data fields will be shown inline in the documentation +# of the scope in which they are defined (i.e. file, namespace, or group +# documentation), provided this scope is documented. If set to NO (the default), +# structs, classes, and unions are shown on a separate page (for HTML and Man +# pages) or section (for LaTeX and RTF). + +INLINE_SIMPLE_STRUCTS = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = YES + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penalty. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will roughly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols. + +SYMBOL_CACHE_SIZE = 0 + +# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be +# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given +# their name and scope. Since this can be an expensive process and often the +# same symbol appear multiple times in the code, doxygen keeps a cache of +# pre-resolved symbols. If the cache is too small doxygen will become slower. +# If the cache is too large, memory is wasted. The cache size is given by this +# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# do proper type resolution of all parameters of a function it will reject a +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose +# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen +# will still accept a match between prototype and implementation in such cases. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files +# containing the references data. This must be a list of .bib files. The +# .bib extension is automatically appended if omitted. Using this command +# requires the bibtex tool to be installed. See also +# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style +# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this +# feature you need bibtex and perl available in the search path. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = include/bgfx.h README.md + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py +# *.f90 *.f *.for *.vhd *.vhdl + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty or if +# non of the patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) +# and it is also possible to disable source filtering for a specific pattern +# using *.ext= (so without naming a filter). This option only has effect when +# FILTER_SOURCE_FILES is enabled. + +FILTER_SOURCE_PATTERNS = + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C, C++ and Fortran comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. Note that when using a custom header you are responsible +# for the proper inclusion of any scripts and style sheets that doxygen +# needs, which is dependent on the configuration options used. +# It is advised to generate a default header using "doxygen -w html +# header.html footer.html stylesheet.css YourConfigFile" and then modify +# that header. Note that the header is subject to change so you typically +# have to redo this when upgrading to a newer version of doxygen or when +# changing the value of configuration settings such as GENERATE_TREEVIEW! + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If left blank doxygen will +# generate a default style sheet. Note that it is recommended to use +# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this +# tag will in the future become obsolete. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional +# user-defined cascading style sheet that is included after the standard +# style sheets created by doxygen. Using this option one can overrule +# certain style aspects. This is preferred over using HTML_STYLESHEET +# since it does not replace the standard style sheet and is therefor more +# robust against future updates. Doxygen will copy the style sheet file to +# the output directory. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that +# the files will be copied as-is; there are no commands or markers available. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the style sheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of +# entries shown in the various tree structured indices initially; the user +# can expand and collapse entries dynamically later on. Doxygen will expand +# the tree to such a level that at most the specified number of entries are +# visible (unless a fully collapsed tree already exceeds this amount). +# So setting the number of entries 1 will produce a full collapsed tree by +# default. 0 is a special value representing an infinite number of entries +# and will result in a full expanded tree by default. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely +# identify the documentation publisher. This should be a reverse domain-name +# style string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) +# at top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. Since the tabs have the same information as the +# navigation tree you can set this option to NO if you already set +# GENERATE_TREEVIEW to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. +# Since the tree basically has the same information as the tab index you +# could consider to set DISABLE_INDEX to NO when enabling this option. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values +# (range [0,1..20]) that doxygen will group on one line in the generated HTML +# documentation. Note that a value of 0 will completely suppress the enum +# values from appearing in the overview section. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax +# (see http://www.mathjax.org) which uses client side Javascript for the +# rendering instead of using prerendered bitmaps. Use this if you do not +# have LaTeX installed or if you want to formulas look prettier in the HTML +# output. When enabled you may also need to install MathJax separately and +# configure the path to it using the MATHJAX_RELPATH option. + +USE_MATHJAX = NO + +# When MathJax is enabled you need to specify the location relative to the +# HTML output directory using the MATHJAX_RELPATH option. The destination +# directory should contain the MathJax.js script. For instance, if the mathjax +# directory is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to +# the MathJax Content Delivery Network so you can quickly see the result without +# installing MathJax. +# However, it is strongly recommended to install a local +# copy of MathJax from http://www.mathjax.org before deployment. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension +# names that should be enabled during MathJax rendering. + +MATHJAX_EXTENSIONS = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a PHP enabled web server instead of at the web client +# using Javascript. Doxygen will generate the search PHP script and index +# file to put on the web server. The advantage of the server +# based approach is that it scales better to large projects and allows +# full text search. The disadvantages are that it is more difficult to setup +# and does not have live searching capabilities. + +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for +# the generated latex document. The footer should contain everything after +# the last chapter. If it is left blank doxygen will generate a +# standard footer. Notice: only use this tag if you know what you are doing! + +LATEX_FOOTER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See +# http://en.wikipedia.org/wiki/BibTeX for more info. + +LATEX_BIB_STYLE = plain + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load style sheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# pointed to by INCLUDE_PATH will be searched when a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition that +# overrules the definition found in the source code. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all references to function-like macros +# that are alone on a line, have an all uppercase name, and do not end with a +# semicolon, because these will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. For each +# tag file the location of the external documentation should be added. The +# format of a tag file without this location is as follows: +# +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths +# or URLs. Note that each tag file must have a unique name (where the name does +# NOT include the path). If a tag file is not located in the directory in which +# doxygen is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option also works with HAVE_DOT disabled, but it is recommended to +# install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will use the Helvetica font for all dot files that +# doxygen generates. When you want a differently looking font you can specify +# the font name using DOT_FONTNAME. You need to make sure dot is able to find +# the font, which can be done by putting it in a standard location or by setting +# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the Helvetica font. +# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to +# set the path where dot can find it. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If the UML_LOOK tag is enabled, the fields and methods are shown inside +# the class node. If there are many fields or methods and many nodes the +# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS +# threshold limits the number of items for each type to make the size more +# managable. Set this to 0 for no limit. Note that the threshold may be +# exceeded by 50% before the limit is enforced. + +UML_LIMIT_NUM_FIELDS = 10 + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will generate a graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are svg, png, jpg, or gif. +# If left blank png will be used. If you choose svg you need to set +# HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible in IE 9+ (other browsers do not have this requirement). + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# Note that this requires a modern browser other than Internet Explorer. +# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you +# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible. Older versions of IE do not have SVG support. + +INTERACTIVE_SVG = NO + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the +# \mscfile command). + +MSCFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/scripts/bindings-d.lua b/scripts/bindings-d.lua index 60ec20f7114..8f47d8a0c9f 100644 --- a/scripts/bindings-d.lua +++ b/scripts/bindings-d.lua @@ -27,57 +27,57 @@ pragma(inline,true) nothrow @nogc pure @safe{ StateBlend_ blendFuncSeparate(StateBlend_ srcRGB, StateBlend_ dstRGB, StateBlend_ srcA, StateBlend_ dstA){ return (srcRGB | ((dstRGB) << 4)) | ((srcA | (dstA << 4)) << 8); } - + ///Blend equation separate. StateBlendEquation_ blendEquationSeparate(StateBlendEquation_ equationRGB, StateBlendEquation_ equationA){ return equationRGB | (equationA << 3); } - + ///Blend function. StateBlend_ blendFunc(StateBlend_ src, StateBlend_ dst){ return blendFuncSeparate(src, dst, src, dst); } - + ///Blend equation. StateBlendEquation_ blendEquation(StateBlendEquation_ equation){ return blendEquationSeparate(equation, equation); } - + ///Utility predefined blend modes. enum StateBlendFunc: StateBlend_{ ///Additive blending. add = blendFunc(StateBlend.one, StateBlend.one), - + ///Alpha blend. alpha = blendFunc(StateBlend.srcAlpha, StateBlend.invSrcAlpha), - + ///Selects darker color of blend. darken = blendFunc(StateBlend.one, StateBlend.one) | blendEquation(StateBlendEquation.min), - + ///Selects lighter color of blend. lighten = blendFunc(StateBlend.one, StateBlend.one) | blendEquation(StateBlendEquation.max), - + ///Multiplies colors. multiply = blendFunc(StateBlend.dstColor, StateBlend.zero), - + ///Opaque pixels will cover the pixels directly below them without any math or algorithm applied to them. normal = blendFunc(StateBlend.one, StateBlend.invSrcAlpha), - + ///Multiplies the inverse of the blend and base colors. screen = blendFunc(StateBlend.one, StateBlend.invSrcColor), - + ///Decreases the brightness of the base color based on the value of the blend color. linearBurn = blendFunc(StateBlend.dstColor, StateBlend.invDstColor) | blendEquation(StateBlendEquation.sub), } - + StateBlend_ blendFuncRTx(StateBlend_ src, StateBlend_ dst){ return cast(uint)(src >> StateBlend.shift) | (cast(uint)(dst >> StateBlend.shift) << 4); } - + StateBlend_ blendFuncRTxE(StateBlend_ src, StateBlend_ dst, StateBlendEquation_ equation){ return blendFuncRTx(src, dst) | (cast(uint)(equation >> StateBlendEquation.shift) << 8); } - + StateBlend_ blendFuncRT1(StateBlend_ src, StateBlend_ dst){ return blendFuncRTx(src, dst) << 0; } StateBlend_ blendFuncRT2(StateBlend_ src, StateBlend_ dst){ return blendFuncRTx(src, dst) << 11; } StateBlend_ blendFuncRT3(StateBlend_ src, StateBlend_ dst){ return blendFuncRTx(src, dst) << 22; } - + StateBlend_ blendFuncRT1E(StateBlend_ src, StateBlend_ dst, StateBlendEquation_ equation){ return blendFuncRTxE(src, dst, equation) << 0; } @@ -111,7 +111,7 @@ local dKeywords = {"abstract", "alias", "align", "asm", "assert", "auto", "bool" local function contains(table, val) for i=1,#table do - if table[i] == val then + if table[i] == val then return true end end @@ -216,7 +216,7 @@ local function hexStr(val, bits) str = str:sub(0, i) .. "_" .. str:sub(i+1) i = i + 5 end - + return "0x" .. str end @@ -272,7 +272,7 @@ local function convSomeType(arg, isFnArg) type = type:gsub("const%s+([A-Za-z_][A-Za-z0-9_]*)%s*%*", "const(%1)*") --change `const x*` to `const(x)*` type = abbrevsToUpper(type) end - + return type end @@ -289,9 +289,9 @@ local valSubs = { UINT8_MAX = "ubyte.max", UINT16_MAX = "ushort.max", UINT32_MAX = "uint.max", - + BGFX_INVALID_HANDLE = "invalidHandle", - + BGFX_DISCARD_ALL = "Discard.all", BGFX_BUFFER_NONE = "Buffer.none", BGFX_STENCIL_NONE = "Stencil.none", @@ -318,7 +318,7 @@ local function convVal(arg, type) val = val:gsub("INT32_MAX", "int.max") end val = convArray(val) - + return val end @@ -359,7 +359,7 @@ local function genStructMemberFn(func) --NOTE: this does not work on nested stru line = line:gsub("@(%l)(%l+)", function(a, b) return a:upper() .. b .. ":" end) table.insert(st.fns, line) end - + local hasParamsComments = false for _, arg in ipairs(func.args) do if arg.comment ~= nil then @@ -367,11 +367,11 @@ local function genStructMemberFn(func) --NOTE: this does not work on nested stru break end end - + if hasParamsComments then table.insert(st.fns, "Params:") end - + for _, arg in ipairs(func.args) do if arg.comment ~= nil then table.insert(st.fns, "\t" .. toIntlEnUncond(convName(arg.name:sub(2))) .. " = " .. arg.comment[1]) @@ -382,10 +382,10 @@ local function genStructMemberFn(func) --NOTE: this does not work on nested stru end end end - + table.insert(st.fns, "*/") end - + local args = {} for _, arg in ipairs(func.args) do local def = "" @@ -398,14 +398,14 @@ local function genStructMemberFn(func) --NOTE: this does not work on nested stru table.insert(args, convFnArgType(arg) .. " " .. toIntlEnUncond(convName(arg.name:sub(2))) .. def) end end - + if func.const ~= nil then attribs = "const" end if attribs ~= "" then attribs = ", memAttr: q{" .. attribs .. "}" end - + table.insert(st.fns, string.format("{q{%s}, q{%s}, q{%s}, ext: `C++`%s},", convType(func.ret), func.name, table.concat(args, ", "), attribs)) end end @@ -431,7 +431,7 @@ function gen.gen() local idx = 1; local r = template:gsub("$([a-zA-Z_]+)", function(what) local tmp = {} - + local ind_end = template:find("$"..what, idx, true) local ind_start = ind_end for j = 1, ind_end-1 do @@ -442,9 +442,9 @@ function gen.gen() break end end - + indent = string.sub(template, ind_start+1, ind_end-1) - + if what == "version" then return genVersion() elseif what == "structs" then @@ -498,13 +498,13 @@ function converter.structs(st, name, topLvl) for _, line in ipairs(st.comments) do yield(line) end - + if topLvl then yield("extern(C++, \"bgfx\") struct " .. name .. "{") else yield("extern(C++) struct " .. name .. "{") end - + local subN = 0 for _, subStruct in ipairs(st.subs) do subN = subN + 1 @@ -521,11 +521,11 @@ function converter.structs(st, name, topLvl) if subN > 0 then yield("\t") end - + for _, line in ipairs(st.fields) do yield(line) end - + if #st.fns > 0 then membersWithFns = membersWithFns .. name .. ", " yield("\textern(D) mixin(joinFnBinds((){") @@ -537,7 +537,7 @@ function converter.structs(st, name, topLvl) yield("\t\treturn ret;") yield("\t}()));") end - + yield("}") end @@ -553,13 +553,13 @@ function converter.types(typ) yield("*/") end end - + if typ.handle then ---hnadle yield("extern(C++, \"bgfx\") struct " .. typ.name .. "{") yield("\tushort idx;") yield("}") --yield(typ.name .. " invalidHandle(){ return " .. typ.name .. "(ushort.max); }") - + -- For some reason, this has never worked, so I'm commenting it out just in case it does start working suddenly. :P --[[ elseif typ.funcptr then @@ -571,16 +571,16 @@ function converter.types(typ) table.insert(args, convFnArgType(arg) .. " " .. convName(arg.name:sub(2)) .. def) end end - + yield(string.format("alias %s = extern(C++) %s function(%s);", typ.name, convType(typ.ret), table.concat(args, ", "))) --]] elseif typ.enum then local typeName = abbrevsToUpper(typ.name:gsub("::Enum", "")) local otherName = string.format("bgfx.fakeenum.%s.Enum", typ.name:gsub("::Enum", "")) - + yield("enum " .. typeName .. ": " .. otherName .. "{") table.insert(enumTypes, typeName) - + local vals = "" for idx, enum in ipairs(typ.enum) do local comments = "" @@ -598,13 +598,13 @@ function converter.types(typ) local name = convName(toCamelCase(enum.name)) yield("\t" .. name .. " = " .. otherName .. "." .. name .. ",") vals = vals .. name .. "," - + local intlName = toIntlEn(enum.name) if intlName ~= nil then yield("\t" .. convName(toCamelCase(intlName)) .. " = " .. otherName .. "." .. name .. ",") end end - + gen.fakeEnumFile = gen.fakeEnumFile .. string.format([[ extern(C++, "bgfx") package final abstract class %s{ enum Enum{ @@ -612,16 +612,16 @@ extern(C++, "bgfx") package final abstract class %s{ } } ]], typeName, vals) - + yield("\t" .. "count = " .. otherName .. ".count,") yield("}") - + elseif typ.bits ~= nil then local typeName = convName(typ.name) if typeName == "Caps" then typeName = "CapFlags" end - + local enumType = "uint" if typ.bits == 64 then enumType = "ulong" @@ -632,7 +632,7 @@ extern(C++, "bgfx") package final abstract class %s{ elseif typ.bits == 8 then enumType = "ubyte" end - + local maxLen = 0 if typ.shift then maxLen = string.len("shift") @@ -642,10 +642,10 @@ extern(C++, "bgfx") package final abstract class %s{ for _, flag in ipairs(typ.flag) do maxLen = math.max(maxLen, flag.name:len()) end - + yield("alias " .. typeName .. "_ = " .. enumType .. ";") yield("enum " .. typeName .. ": " .. typeName .. "_{") - + local function getValOr(name) local t = typeName if typeName == "State" then @@ -685,7 +685,7 @@ extern(C++, "bgfx") package final abstract class %s{ end return abbrevsToUpper(t) .. "." .. convName(toCamelCase(name)) end - + for idx, flag in ipairs(typ.flag) do local value = flag.value if value ~= nil then @@ -699,7 +699,7 @@ extern(C++, "bgfx") package final abstract class %s{ end end end - + local comments = "" if flag.comment ~= nil then if #flag.comment == 1 then @@ -712,17 +712,17 @@ extern(C++, "bgfx") package final abstract class %s{ yield("\t*/") end end - + local name = convName(toCamelCase(flag.name)) yield("\t" .. name .. string.rep(" ", maxLen+2 - name:len()) .. "= " .. value .. "," .. comments) - + local intlName = toIntlEn(name) if intlName ~= nil then intlName = intlName yield("\t" .. intlName .. string.rep(" ", maxLen+2 - intlName:len()) .. "= " .. name .. ",") end end - + if typ.shift then local name = convName("shift") local value = typ.shift @@ -742,12 +742,12 @@ extern(C++, "bgfx") package final abstract class %s{ yield("\t" .. name .. string.rep(" ", maxLen+2 - name:len()) .. "= " .. value .. "," .. comments) end yield("}") - + local intlName = toIntlEn(typeName) if intlName ~= nil then yield("alias " .. intlName .. " = " .. typeName .. ";") end - + if typ.helper then yield(string.format( "%s_ to%s(%s v) nothrow @nogc pure @safe{ return (v << %s) & %s; }", @@ -762,7 +762,7 @@ extern(C++, "bgfx") package final abstract class %s{ end elseif typ.struct ~= nil then local st = {name = typ.name, comments = {}, fields = {}, fns = {}, subs = {}} - + if typ.comments ~= nil then if #typ.comments == 1 then table.insert(st.comments, "///" .. typ.comments[1]) @@ -774,7 +774,7 @@ extern(C++, "bgfx") package final abstract class %s{ table.insert(st.comments, "*/") end end - + for _, member in ipairs(typ.struct) do local comments = "" if member.comment ~= nil then @@ -793,11 +793,11 @@ extern(C++, "bgfx") package final abstract class %s{ end table.insert(st.fields, "\t" .. convStructMember(member) .. ";" .. comments) end - + if typ.ctor ~= nil and typ.name ~= "PlatformData" then table.insert(st.fns, "{q{void}, q{this}, q{}, ext: `C++`},") end - + if typ.namespace ~= nil then --if this is a sub-struct if allStructs[typ.namespace] ~= nil then table.insert(allStructs[typ.namespace].subs, st) @@ -828,7 +828,7 @@ function converter.funcs(func) line = line:gsub("@(%l)(%l+)", function(a, b) return a:upper() .. b .. ":" end) yield("* " .. line) end - + local hasParamsComments = false for _, arg in ipairs(func.args) do if arg.comment ~= nil then @@ -836,11 +836,11 @@ function converter.funcs(func) break end end - + if hasParamsComments then yield("Params:") end - + for _, arg in ipairs(func.args) do if arg.comment ~= nil then yield("\t" .. toIntlEnUncond(convName(arg.name:sub(2))) .. " = " .. arg.comment[1]) @@ -851,10 +851,10 @@ function converter.funcs(func) end end end - + yield("*/") end - + local args = {} for _, arg in ipairs(func.args) do local def = "" @@ -867,11 +867,11 @@ function converter.funcs(func) table.insert(args, convFnArgType(arg) .. " " .. toIntlEnUncond(convName(arg.name:sub(2))) .. def) end end - + if attribs ~= "" then attribs = ", memAttr: q{" .. attribs .. "}" end - + yield(string.format("{q{%s}, q{%s}, q{%s}, ext: `%s`%s},", convType(func.ret), func.name, table.concat(args, ", "), extern, attribs)) end end diff --git a/src/bgfx_compute.sh b/src/bgfx_compute.sh index d136004a831..bfe787cfd7d 100644 --- a/src/bgfx_compute.sh +++ b/src/bgfx_compute.sh @@ -101,7 +101,7 @@ #define IMAGE2D_WO( _name, _format, _reg) \ WRITEONLY FORMAT(_format) RWTexture2D _name : REGISTER(u, _reg); \ - + #define UIMAGE2D_WO(_name, _format, _reg) IMAGE2D_WO(_name, _format, _reg) #define IMAGE2D_RW( _name, _format, _reg) \ diff --git a/src/dxgi.cpp b/src/dxgi.cpp index 9ddd0eaeb3f..61c7889d47c 100644 --- a/src/dxgi.cpp +++ b/src/dxgi.cpp @@ -482,7 +482,7 @@ namespace bgfx scd.SwapEffect = _scd.swapEffect; scd.AlphaMode = _scd.alphaMode; scd.Flags = _scd.flags; - + #if BX_PLATFORM_LINUX || BX_PLATFORM_WINDOWS IDXGIFactory5* factory5; hr = m_factory->QueryInterface(IID_IDXGIFactory5, (void**)&factory5); diff --git a/src/renderer_mtl.h b/src/renderer_mtl.h index 51aca7c287e..c04a9941d29 100644 --- a/src/renderer_mtl.h +++ b/src/renderer_mtl.h @@ -1072,7 +1072,7 @@ namespace bgfx { namespace mtl void resize(FrameBufferMtl &_frameBuffer, uint32_t _width, uint32_t _height, uint32_t _flags, uint32_t _maximumDrawableCount); id currentDrawableTexture(); - + CAMetalLayer* m_metalLayer; #if BX_PLATFORM_VISIONOS cp_layer_renderer_t m_layerRenderer; diff --git a/tools/bin/darwin/.gitignore b/tools/bin/darwin/.gitignore index 5e4debcc105..72e8ffc0db8 100644 --- a/tools/bin/darwin/.gitignore +++ b/tools/bin/darwin/.gitignore @@ -1 +1 @@ -* +* diff --git a/tools/bin/linux/.gitignore b/tools/bin/linux/.gitignore index 5e4debcc105..72e8ffc0db8 100644 --- a/tools/bin/linux/.gitignore +++ b/tools/bin/linux/.gitignore @@ -1 +1 @@ -* +* diff --git a/tools/bin/windows/.gitignore b/tools/bin/windows/.gitignore index 5e4debcc105..72e8ffc0db8 100644 --- a/tools/bin/windows/.gitignore +++ b/tools/bin/windows/.gitignore @@ -1 +1 @@ -* +* diff --git a/tools/geometryv/fs_mesh.sc b/tools/geometryv/fs_mesh.sc index de56ba5c571..f17c54eba9d 100644 --- a/tools/geometryv/fs_mesh.sc +++ b/tools/geometryv/fs_mesh.sc @@ -61,4 +61,4 @@ void main() gl_FragColor.xyz = evalSh(nn); gl_FragColor.w = 1.0; -} +} diff --git a/tools/texturev/common.sh b/tools/texturev/common.sh index 90c3389dd90..d77c2719a51 100644 --- a/tools/texturev/common.sh +++ b/tools/texturev/common.sh @@ -116,7 +116,7 @@ vec4 toOutput(vec4 _color, float _outputFormat, float _sdrWhiteNits) else if (_outputFormat < 2.5) { // output == 2 -> PQ - + // change primaries from sRGB/rec709 to rec2020 vec3 _xyz = toXyzFromSrgb(_color.xyz); outColor = toRec2020FromXyz(_xyz);