Previous 199869 Revisions Next

r36453 Tuesday 17th March, 2015 at 10:08:12 UTC by Miodrag Milanović
Sync with latest (nw)
[3rdparty/bgfx]README.md
[3rdparty/bgfx/examples/08-update]fs_update_3d.sc* update.cpp
[3rdparty/bgfx/examples/common/entry]entry_osx.mm entry_sdl.cpp
[3rdparty/bgfx/examples/common/imgui]imgui.cpp imgui.h
[3rdparty/bgfx/examples/common/nanovg]nanovg.cpp nanovg.h nanovg_bgfx.cpp
[3rdparty/bgfx/examples/runtime/shaders/dx11]fs_update_3d.bin*
[3rdparty/bgfx/examples/runtime/shaders/dx9]fs_update_3d.bin*
[3rdparty/bgfx/examples/runtime/shaders/gles]fs_update_3d.bin*
[3rdparty/bgfx/examples/runtime/shaders/glsl]fs_update_3d.bin*
[3rdparty/bgfx/scripts]bgfx.lua
[3rdparty/bgfx/src]renderer_d3d11.cpp renderer_d3d9.h renderer_gl.cpp renderer_gl.h
[3rdparty/bx/include/bx]platform.h
[3rdparty/bx/tools/bin/darwin]genie
[3rdparty/bx/tools/bin/linux]genie
[3rdparty/bx/tools/bin/windows]genie.exe
[3rdparty/genie]README.md makefile
[3rdparty/genie/build/gmake.darwin]genie.make
[3rdparty/genie/build/gmake.linux]genie.make
[3rdparty/genie/build/gmake.windows]genie.make
[3rdparty/genie/src/actions/make]make_cpp.lua
[3rdparty/genie/src/actions/vstudio]_vstudio.lua
[3rdparty/genie/src/host]scripts.c

trunk/3rdparty/bgfx/README.md
r244964r244965
319319Steps bellow are for default build system inside bgfx repository. There is
320320alterative way to build bgfx and examples with [fips](https://github.com/floooh/fips-bgfx/#fips-bgfx).
321321
322### Prerequisites
323
324Windows users download GnuWin32 utilities from: 
325[http://gnuwin32.sourceforge.net/packages/make.htm](http://gnuwin32.sourceforge.net/packages/make.htm) 
326[http://gnuwin32.sourceforge.net/packages/coreutils.htm](http://gnuwin32.sourceforge.net/packages/coreutils.htm) 
327[http://gnuwin32.sourceforge.net/packages/libiconv.htm](http://gnuwin32.sourceforge.net/packages/libiconv.htm) 
328[http://gnuwin32.sourceforge.net/packages/libintl.htm](http://gnuwin32.sourceforge.net/packages/libintl.htm)
329
330322### Getting source
331323
332324   git clone git://github.com/bkaradzic/bx.git
333325   git clone git://github.com/bkaradzic/bgfx.git
326
327### Quick start (Windows with Visual Studio)
328
329Enter bgfx directory:
330
334331   cd bgfx
332
333Generate Visual Studio 2013 project files:
334
335   ..\bx\tools\bin\windows\genie vs2013
336
337Open bgfx solution in Visual Studio 2013:
338
339   start .build\projects\vs2013\bgfx.sln
340
341### Generating project files for all targets
342
343   cd bgfx
335344   make
336345
337346After calling `make`, .build/projects/* directory will be generated. All
r244964r244965
361370
362371### Prerequisites for Windows
363372
373Windows users download GnuWin32 utilities from: 
374[http://gnuwin32.sourceforge.net/packages/make.htm](http://gnuwin32.sourceforge.net/packages/make.htm) 
375[http://gnuwin32.sourceforge.net/packages/coreutils.htm](http://gnuwin32.sourceforge.net/packages/coreutils.htm) 
376[http://gnuwin32.sourceforge.net/packages/libiconv.htm](http://gnuwin32.sourceforge.net/packages/libiconv.htm) 
377[http://gnuwin32.sourceforge.net/packages/libintl.htm](http://gnuwin32.sourceforge.net/packages/libintl.htm)
378
364379When building on Windows, you have to set DXSDK_DIR environment variable to
365380point to DirectX SDK directory.
366381
trunk/3rdparty/bgfx/examples/08-update/fs_update_3d.sc
r0r244965
1$input v_texcoord0
2
3/*
4 * Copyright 2011-2015 Branimir Karadzic. All rights reserved.
5 * License: http://www.opensource.org/licenses/BSD-2-Clause
6 */
7
8#include "../common/common.sh"
9
10SAMPLER3D(u_texColor, 0);
11uniform float u_time;
12
13void main()
14{
15   vec3 uvw = vec3(v_texcoord0.xy*0.5+0.5,   sin(u_time)*0.5+0.5);
16   gl_FragColor = vec4_splat(texture3D(u_texColor, uvw).x);
17}
trunk/3rdparty/bgfx/examples/08-update/update.cpp
r244964r244965
149149      loadTexture("texture_compression_ptc24.pvr"),
150150   };
151151
152   const bgfx::Memory* mem8   = bgfx::alloc(32*32*32);
153   const bgfx::Memory* mem16f = bgfx::alloc(32*32*32*2);
154   const bgfx::Memory* mem32f = bgfx::alloc(32*32*32*4);
155   for (uint8_t zz = 0; zz < 32; ++zz)
156   {
157      for (uint8_t yy = 0; yy < 32; ++yy)
158      {
159         for (uint8_t xx = 0; xx < 32; ++xx)
160         {
161            const uint32_t offset = ( (zz*32+yy)*32+xx);
162            const uint32_t val = xx ^ yy ^ zz;
163            mem8->data[offset] = val<<3;
164            *(uint16_t*)&mem16f->data[offset*2] = bx::halfFromFloat( (float)val/32.0f);
165            *(float*)&mem32f->data[offset*4] = (float)val/32.0f;
166         }
167      }
168   }
169
170   bgfx::TextureHandle textures3d[] =
171   {
172      bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R8,   BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem8),
173      bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R16F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem16f),
174      bgfx::createTexture3D(32, 32, 32, 0, bgfx::TextureFormat::R32F, BGFX_TEXTURE_U_CLAMP|BGFX_TEXTURE_V_CLAMP|BGFX_TEXTURE_W_CLAMP, mem32f),
175   };
176
152177   // Create static vertex buffer.
153178   bgfx::VertexBufferHandle vbh = bgfx::createVertexBuffer(bgfx::makeRef(s_cubeVertices, sizeof(s_cubeVertices) ), PosTexcoordVertex::ms_decl);
154179
r244964r244965
156181   bgfx::IndexBufferHandle ibh = bgfx::createIndexBuffer(bgfx::makeRef(s_cubeIndices, sizeof(s_cubeIndices) ) );
157182
158183   // Create texture sampler uniforms.
159   bgfx::UniformHandle u_texCube = bgfx::createUniform("u_texCube", bgfx::UniformType::Uniform1iv);
160
184   bgfx::UniformHandle u_texCube  = bgfx::createUniform("u_texCube",  bgfx::UniformType::Uniform1iv);
161185   bgfx::UniformHandle u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Uniform1iv);
162186
163   bgfx::ProgramHandle program    = loadProgram("vs_update", "fs_update");
164   bgfx::ProgramHandle programCmp = loadProgram("vs_update", "fs_update_cmp");
187   bgfx::UniformHandle u_time = bgfx::createUniform("u_time", bgfx::UniformType::Uniform1f);
165188
189   bgfx::ProgramHandle program     = loadProgram("vs_update", "fs_update");
190   bgfx::ProgramHandle programCmp  = loadProgram("vs_update", "fs_update_cmp");
191   bgfx::ProgramHandle program3d   = loadProgram("vs_update", "fs_update_3d");
192
166193   const uint32_t textureSide = 2048;
167194
168195   bgfx::TextureHandle textureCube = bgfx::createTextureCube(textureSide, 1
r244964r244965
210237      const int64_t freq = bx::getHPFrequency();
211238      const double toMs = 1000.0/double(freq);
212239      float time = (float)( (now - timeOffset)/double(bx::getHPFrequency() ) );
240      bgfx::setUniform(u_time, &time);
213241
214242      // Use debug font to print information about this example.
215243      bgfx::dbgTextClear();
r244964r244965
345373      // Submit primitive for rendering to view 1.
346374      bgfx::submit(1);
347375
376      const float xpos = -8.0f - BX_COUNTOF(textures)*0.1f*0.5f;
348377
349378      for (uint32_t ii = 0; ii < BX_COUNTOF(textures); ++ii)
350379      {
351         bx::mtxTranslate(mtx, -8.0f - BX_COUNTOF(textures)*0.1f*0.5f + ii*2.1f, 4.0f, 0.0f);
380         bx::mtxTranslate(mtx, xpos + ii*2.1f, 4.0f, 0.0f);
352381
353382         // Set model matrix for rendering.
354383         bgfx::setTransform(mtx);
r244964r244965
370399         bgfx::submit(1);
371400      }
372401
402      for (uint32_t ii = 0; ii < BX_COUNTOF(textures3d); ++ii)
403      {
404         bx::mtxTranslate(mtx, xpos + ii*2.1f, -4.0f, 0.0f);
405
406         // Set model matrix for rendering.
407         bgfx::setTransform(mtx);
408
409         // Set vertex and fragment shaders.
410         bgfx::setProgram(program3d);
411
412         // Set vertex and index buffer.
413         bgfx::setVertexBuffer(vbh);
414         bgfx::setIndexBuffer(ibh, 0, 6);
415
416         // Bind texture.
417         bgfx::setTexture(0, u_texColor, textures3d[ii]);
418
419         // Set render states.
420         bgfx::setState(BGFX_STATE_DEFAULT);
421
422         // Submit primitive for rendering to view 1.
423         bgfx::submit(1);
424      }
425
373426      for (uint32_t ii = 0; ii < 3; ++ii)
374427      {
375         bx::mtxTranslate(mtx, -8.0f - BX_COUNTOF(textures)*0.1f*0.5f + 8*2.1f, -4.0f + ii*2.1f, 0.0f);
428         bx::mtxTranslate(mtx, xpos + 8*2.1f, -4.0f + ii*2.1f, 0.0f);
376429
377430         // Set model matrix for rendering.
378431         bgfx::setTransform(mtx);
r244964r244965
412465      bgfx::destroyTexture(textures[ii]);
413466   }
414467
468   for (uint32_t ii = 0; ii < BX_COUNTOF(textures3d); ++ii)
469   {
470      bgfx::destroyTexture(textures3d[ii]);
471   }
472
415473   bgfx::destroyTexture(texture2d);
416474   bgfx::destroyTexture(textureCube);
417475   bgfx::destroyIndexBuffer(ibh);
418476   bgfx::destroyVertexBuffer(vbh);
477   bgfx::destroyProgram(program3d);
419478   bgfx::destroyProgram(programCmp);
420479   bgfx::destroyProgram(program);
480   bgfx::destroyUniform(u_time);
421481   bgfx::destroyUniform(u_texColor);
422482   bgfx::destroyUniform(u_texCube);
423483
trunk/3rdparty/bgfx/examples/common/entry/entry_osx.mm
r244964r244965
584584
585585         if (!s_ctx.m_fullscreen)
586586         {
587            [NSMenu setMenuBarVisible: false];
588587            s_ctx.m_style &= ~NSTitledWindowMask;
589588            dispatch_async(dispatch_get_main_queue()
590589            , ^{
590               [NSMenu setMenuBarVisible: false];
591591               [window setStyleMask: s_ctx.m_style];
592592               [window setFrame:screenRect display:YES];
593593            });
r244964r244965
596596         }
597597         else
598598         {
599            [NSMenu setMenuBarVisible: true];
600599            s_ctx.m_style |= NSTitledWindowMask;
601600            dispatch_async(dispatch_get_main_queue()
602601            , ^{
602               [NSMenu setMenuBarVisible: true];
603603               [window setStyleMask: s_ctx.m_style];
604604               [window setFrame:s_ctx.m_windowFrame display:YES];
605605            });
trunk/3rdparty/bgfx/examples/common/entry/entry_sdl.cpp
r244964r244965
211211         : m_width(ENTRY_DEFAULT_WIDTH)
212212         , m_height(ENTRY_DEFAULT_HEIGHT)
213213         , m_aspectRatio(16.0f/9.0f)
214         , m_mx(0)
215         , m_my(0)
216         , m_mz(0)
214217         , m_mouseLock(false)
215218         , m_fullscreen(false)
216219      {
r244964r244965
376379               case SDL_MOUSEMOTION:
377380                  {
378381                     const SDL_MouseMotionEvent& mev = event.motion;
382                     m_mx = mev.x;
383                     m_my = mev.y;
384
379385                     WindowHandle handle = findHandle(mev.windowID);
380386                     if (isValid(handle) )
381387                     {
382                        m_eventQueue.postMouseEvent(handle, mev.x, mev.y, 0);
388                        m_eventQueue.postMouseEvent(handle, m_mx, m_my, m_mz);
383389                     }
384390                  }
385391                  break;
r244964r244965
411417                  }
412418                  break;
413419
420               case SDL_MOUSEWHEEL:
421                  {
422                     const SDL_MouseWheelEvent& mev = event.wheel;
423                     m_mz += mev.y;
424
425                     WindowHandle handle = findHandle(mev.windowID);
426                     if (isValid(handle) )
427                     {
428                        m_eventQueue.postMouseEvent(handle, m_mx, m_my, m_mz);
429                     }
430                  }
431                  break;
432
433               case SDL_TEXTINPUT:
434                  {
435                     const SDL_TextInputEvent& tev = event.text;
436                     WindowHandle handle = findHandle(tev.windowID);
437                     if (isValid(handle) )
438                     {
439                        m_eventQueue.postCharEvent(handle, 1, (const uint8_t*)tev.text);
440                     }
441                  }
442                  break;
443
414444               case SDL_KEYDOWN:
415445                  {
416446                     const SDL_KeyboardEvent& kev = event.key;
r244964r244965
745775
746776      int32_t m_mx;
747777      int32_t m_my;
778      int32_t m_mz;
748779      bool m_mouseLock;
749780      bool m_fullscreen;
750781   };
trunk/3rdparty/bgfx/examples/common/imgui/imgui.cpp
r244964r244965
388388      , m_halfTexel(0.0f)
389389      , m_nvg(NULL)
390390      , m_view(255)
391      , m_surfaceWidth(0)
392      , m_surfaceHeight(0)
391393      , m_viewWidth(0)
392394      , m_viewHeight(0)
393395      , m_currentFontIdx(0)
r244964r244965
810812      m_char = _inputChar;
811813   }
812814
813   void beginFrame(int32_t _mx, int32_t _my, uint8_t _button, int32_t _scroll, uint16_t _width, uint16_t _height, char _inputChar, uint8_t _view)
815   void beginFrame(int32_t _mx, int32_t _my, uint8_t _button, int32_t _scroll, uint16_t _width, uint16_t _height, uint16_t _surfaceWidth, uint16_t _surfaceHeight, char _inputChar, uint8_t _view)
814816   {
815      IMGUI_beginFrame(_mx, _my, _button, _width, _height, _inputChar, _view);
816      nvgViewId(m_nvg, _view);
817
818817      m_view = _view;
819818      m_viewWidth = _width;
820819      m_viewHeight = _height;
820      m_surfaceWidth = _surfaceWidth;
821      m_surfaceHeight = _surfaceHeight;
822
823      const float xscale = float(m_surfaceWidth) /float(m_viewWidth);
824      const float yscale = float(m_surfaceHeight)/float(m_viewHeight);
825      const int32_t mx = int32_t(float(_mx)*xscale);
826      const int32_t my = int32_t(float(_my)*yscale);
827
828      IMGUI_beginFrame(mx, my, _button, _width, _height, _inputChar, _view);
829      nvgBeginFrameScaled(m_nvg, m_viewWidth, m_viewHeight, m_surfaceWidth, m_surfaceHeight, 1.0f);
830      nvgViewId(m_nvg, _view);
831
821832      bgfx::setViewName(_view, "IMGUI");
822833      bgfx::setViewSeq(_view, true);
823834
824835      const bgfx::HMD* hmd = bgfx::getHMD();
825836      if (NULL != hmd)
826837      {
827         m_viewWidth  = _width / 2;
838         m_viewWidth = _width / 2;
839         m_surfaceWidth = _surfaceWidth / 2;
828840
829841         float proj[16];
830842         bx::mtxProj(proj, hmd->eye[0].fov, 0.1f, 100.0f);
r244964r244965
837849         const float offset1 = -proj[8] + (hmd->eye[1].viewOffset[0] / dist * proj[0]);
838850
839851         float ortho[2][16];
840         const float viewOffset = _width/4.0f;
841         const float viewWidth  = _width/2.0f;
842         bx::mtxOrtho(ortho[0], viewOffset, viewOffset + viewWidth, (float)m_viewHeight, 0.0f, 0.0f, 1000.0f, offset0);
843         bx::mtxOrtho(ortho[1], viewOffset, viewOffset + viewWidth, (float)m_viewHeight, 0.0f, 0.0f, 1000.0f, offset1);
852         const float viewOffset = _surfaceWidth/4.0f;
853         const float viewWidth  = _surfaceWidth/2.0f;
854         bx::mtxOrtho(ortho[0], viewOffset, viewOffset + viewWidth, (float)m_surfaceHeight, 0.0f, 0.0f, 1000.0f, offset0);
855         bx::mtxOrtho(ortho[1], viewOffset, viewOffset + viewWidth, (float)m_surfaceHeight, 0.0f, 0.0f, 1000.0f, offset1);
844856         bgfx::setViewTransform(_view, NULL, ortho[0], BGFX_VIEW_STEREO, ortho[1]);
845857         bgfx::setViewRect(_view, 0, 0, hmd->width, hmd->height);
846858      }
847859      else
848860      {
849861         float ortho[16];
850         bx::mtxOrtho(ortho, 0.0f, (float)m_viewWidth, (float)m_viewHeight, 0.0f, 0.0f, 1000.0f);
862         bx::mtxOrtho(ortho, 0.0f, (float)m_surfaceWidth, (float)m_surfaceHeight, 0.0f, 0.0f, 1000.0f);
851863         bgfx::setViewTransform(_view, NULL, ortho);
852864         bgfx::setViewRect(_view, 0, 0, _width, _height);
853865      }
854866
855      updateInput(_mx, _my, _button, _scroll, _inputChar);
867      updateInput(mx, my, _button, _scroll, _inputChar);
856868
857869      m_hot = m_hotToBe;
858870      m_hotToBe = 0;
r244964r244965
884896
885897      clearInput();
886898
899      nvgEndFrame(m_nvg);
887900      IMGUI_endFrame();
888901   }
889902
r244964r244965
937950         setEnabled(m_areaId);
938951      }
939952
940      nvgScissor(m_nvg
941             , float(area.m_scissorX)
942             , float(area.m_scissorY-1)
943             , float(area.m_scissorWidth)
944             , float(area.m_scissorHeight+1)
945             );
953      nvgScissor(m_nvg, area);
946954
947955      m_insideArea |= area.m_inside;
948956
r244964r244965
10801088         }
10811089      }
10821090
1083      nvgScissor(m_nvg
1084             , float(parentArea.m_scissorX)
1085             , float(parentArea.m_scissorY-1)
1086             , float(parentArea.m_scissorWidth)
1087             , float(parentArea.m_scissorHeight+1)
1088             );
1091      nvgScissor(m_nvg, parentArea);
10891092   }
10901093
10911094   bool beginArea(const char* _name, int32_t _x, int32_t _y, int32_t _width, int32_t _height, bool _enabled, int32_t _r)
r244964r244965
11591162      }
11601163      area.m_scissorEnabled = true;
11611164
1162      nvgBeginFrame(m_nvg, m_viewWidth, m_viewHeight, 1.0f);
1163      nvgScissor(m_nvg
1164             , float(area.m_scissorX)
1165             , float(area.m_scissorY-1)
1166             , float(area.m_scissorWidth)
1167             , float(area.m_scissorHeight+1)
1168             );
1165      nvgScissor(m_nvg, area);
11691166
11701167      m_insideArea |= area.m_inside;
11711168      return area.m_inside;
r244964r244965
11731170
11741171   void endArea()
11751172   {
1173      m_areaId.pop();
11761174      nvgResetScissor(m_nvg);
1177      nvgEndFrame(m_nvg);
11781175   }
11791176
11801177   bool button(const char* _text, bool _enabled, ImguiAlign::Enum _align, uint32_t _rgb0, int32_t _r)
r244964r244965
12031200          //||  ImguiAlign::CenterIndented == _align).
12041201      {
12051202         xx = area.m_widgetX;
1206         width = area.m_widgetW - (area.m_widgetX-area.m_scissorX);
1203         width = area.m_widgetW - (area.m_widgetX-area.m_contentX);
12071204      }
12081205
12091206      const bool enabled = _enabled && isEnabled(m_areaId);
r244964r244965
13861383          //||  ImguiAlign::CenterIndented == _align).
13871384      {
13881385         xx = area.m_widgetX;
1389         width = area.m_widgetW - (area.m_widgetX-area.m_scissorX);
1386         width = area.m_widgetW - (area.m_widgetX-area.m_contentX);
13901387      }
13911388
13921389      const bool drawLabel = (NULL != _label && _label[0] != '\0');
r244964r244965
15251522          //||  ImguiAlign::CenterIndented == _align).
15261523      {
15271524         xx = area.m_widgetX;
1528         width = area.m_widgetW - (area.m_widgetX-area.m_scissorX);
1525         width = area.m_widgetW - (area.m_widgetX-area.m_contentX);
15291526      }
15301527
15311528      uint8_t selected = _selected;
r244964r244965
17451742          //||  ImguiAlign::CenterIndented == _align).
17461743      {
17471744         xx = area.m_widgetX;
1748         width = area.m_widgetW - (area.m_widgetX-area.m_scissorX);
1745         width = area.m_widgetW - (area.m_widgetX-area.m_contentX);
17491746      }
17501747
17511748      const int32_t height = width/2;
r244964r244965
17981795          //||  ImguiAlign::CenterIndented == _align).
17991796      {
18001797         xx = area.m_widgetX;
1801         width = area.m_widgetW - (area.m_widgetX-area.m_scissorX);
1798         width = area.m_widgetW - (area.m_widgetX-area.m_contentX);
18021799      }
18031800
18041801      const bool adjustHeight = (_cross && _sameHeight);
r244964r244965
20242021         xx = -borderSize;
20252022         yy = -1;
20262023         width = 2*borderSize+1;
2027         height = m_viewHeight+1;
2024         height = m_surfaceHeight+1;
20282025         triX = 0;
2029         triY = (m_viewHeight-triSize)/2;
2026         triY = (m_surfaceHeight-triSize)/2;
20302027         orientation = _checked ? TriangleOrientation::Left : TriangleOrientation::Right;
20312028      }
20322029      else if (ImguiBorder::Right == _border)
20332030      {
2034         xx = m_viewWidth - borderSize;
2031         xx = m_surfaceWidth - borderSize;
20352032         yy = -1;
20362033         width = 2*borderSize+1;
2037         height = m_viewHeight+1;
2038         triX = m_viewWidth - triSize - 2;
2039         triY = (m_viewHeight-width)/2;
2034         height = m_surfaceHeight+1;
2035         triX = m_surfaceWidth - triSize - 2;
2036         triY = (m_surfaceHeight-width)/2;
20402037         orientation = _checked ? TriangleOrientation::Right : TriangleOrientation::Left;
20412038      }
20422039      else if (ImguiBorder::Top == _border)
20432040      {
20442041         xx = 0;
20452042         yy = -borderSize;
2046         width = m_viewWidth;
2043         width = m_surfaceWidth;
20472044         height = 2*borderSize;
2048         triX = (m_viewWidth-triSize)/2;
2045         triX = (m_surfaceWidth-triSize)/2;
20492046         triY = 0;
20502047         orientation = _checked ? TriangleOrientation::Up : TriangleOrientation::Down;
20512048      }
20522049      else //if (ImguiBorder::Bottom == _border).
20532050      {
20542051         xx = 0;
2055         yy = m_viewHeight - borderSize;
2056         width = m_viewWidth;
2052         yy = m_surfaceHeight - borderSize;
2053         width = m_surfaceWidth;
20572054         height = 2*borderSize;
2058         triX = (m_viewWidth-triSize)/2;
2059         triY = m_viewHeight-triSize;
2055         triX = (m_surfaceWidth-triSize)/2;
2056         triY = m_surfaceHeight-triSize;
20602057         orientation = _checked ? TriangleOrientation::Down : TriangleOrientation::Up;
20612058      }
20622059
r244964r244965
21472144          //||  ImguiAlign::CenterIndented == _align).
21482145      {
21492146         xx = area.m_widgetX;
2150         width = area.m_widgetW - (area.m_widgetX-area.m_scissorX);
2147         width = area.m_widgetW - (area.m_widgetX-area.m_contentX);
21512148      }
21522149
21532150      drawRoundedRect( (float)xx, (float)yy, (float)width, (float)height, 4.0f, imguiRGBA(0, 0, 0, 128) );
r244964r244965
22652262      area.m_widgetY += _height;
22662263   }
22672264
2268   void separatorLine(uint16_t _height)
2265   void separatorLine(uint16_t _height, ImguiAlign::Enum _align)
22692266   {
22702267      Area& area = getCurrentArea();
2271      const int32_t rectWidth = area.m_widgetW;
2272      const int32_t rectHeight = 1;
2273      const int32_t xx = area.m_widgetX;
2274      const int32_t yy = area.m_widgetY + _height/2 - rectHeight;
2268      //const int32_t width = area.m_widgetW;
2269      const int32_t height = 1;
2270      //const int32_t xx = area.m_widgetX;
2271      const int32_t yy = area.m_widgetY + _height/2 - height;
2272
2273      int32_t xx;
2274      int32_t width;
2275      if (ImguiAlign::Left == _align)
2276      {
2277         xx = area.m_contentX + SCROLL_AREA_PADDING;
2278         width = area.m_widgetW;
2279      }
2280      else if (ImguiAlign::LeftIndented == _align
2281          ||  ImguiAlign::Right        == _align)
2282      {
2283         xx = area.m_widgetX;
2284         width = area.m_widgetW;
2285      }
2286      else //if (ImguiAlign::Center         == _align
2287          //||  ImguiAlign::CenterIndented == _align).
2288      {
2289         xx = area.m_widgetX;
2290         width = area.m_widgetW - (area.m_widgetX-area.m_contentX) + 1;
2291      }
2292
22752293      area.m_widgetY += _height;
22762294
22772295      drawRect( (float)xx
22782296            , (float)yy
2279            , (float)rectWidth
2280            , (float)rectHeight
2297            , (float)width
2298            , (float)height
22812299            , imguiRGBA(255, 255, 255, 32)
22822300            );
22832301   }
r244964r244965
30483066      const Area& area = getCurrentArea();
30493067      if (area.m_scissorEnabled)
30503068      {
3051         bgfx::setScissor(uint16_t(IMGUI_MAX(0, area.m_scissorX) )
3052                     , uint16_t(IMGUI_MAX(0, area.m_scissorY-1) )
3053                     , area.m_scissorWidth
3054                     , area.m_scissorHeight+1
3069         const float xscale = float(m_viewWidth) /float(m_surfaceWidth);
3070         const float yscale = float(m_viewHeight)/float(m_surfaceHeight);
3071         const int16_t scissorX      = int16_t(float(area.m_scissorX)*xscale);
3072         const int16_t scissorY      = int16_t(float(area.m_scissorY)*yscale);
3073         const int16_t scissorWidth  = int16_t(float(area.m_scissorWidth)*xscale);
3074         const int16_t scissorHeight = int16_t(float(area.m_scissorHeight)*yscale);
3075         bgfx::setScissor(uint16_t(IMGUI_MAX(0, scissorX) )
3076                     , uint16_t(IMGUI_MAX(0, scissorY-1) )
3077                     , scissorWidth
3078                     , scissorHeight+1
30553079                     );
30563080      }
30573081      else
r244964r244965
30603084      }
30613085   }
30623086
3087   inline void nvgScissor(NVGcontext* _ctx, const Area& _area)
3088   {
3089      if (_area.m_scissorEnabled)
3090      {
3091         ::nvgScissor(_ctx
3092                  , float(IMGUI_MAX(0, _area.m_scissorX) )
3093                  , float(IMGUI_MAX(0, _area.m_scissorY-1) )
3094                  , float(_area.m_scissorWidth)
3095                  , float(_area.m_scissorHeight+1)
3096                  );
3097      }
3098      else
3099      {
3100         nvgResetScissor(_ctx);
3101      }
3102   }
3103
30633104   template <typename Ty, uint16_t Max=64>
30643105   struct IdStack
30653106   {
r244964r244965
31493190   uint8_t m_view;
31503191   uint16_t m_viewWidth;
31513192   uint16_t m_viewHeight;
3193   uint16_t m_surfaceWidth;
3194   uint16_t m_surfaceHeight;
31523195
31533196#if !USE_NANOVG_FONT
31543197   struct Font
r244964r244965
32033246   return handle;
32043247}
32053248
3249void imguiBeginFrame(int32_t _mx, int32_t _my, uint8_t _button, int32_t _scroll, uint16_t _width, uint16_t _height, uint16_t _surfaceWidth, uint16_t _surfaceHeight, char _inputChar, uint8_t _view)
3250{
3251   s_imgui.beginFrame(_mx, _my, _button, _scroll, _width, _height, _surfaceWidth, _surfaceHeight, _inputChar, _view);
3252}
3253
32063254void imguiBeginFrame(int32_t _mx, int32_t _my, uint8_t _button, int32_t _scroll, uint16_t _width, uint16_t _height, char _inputChar, uint8_t _view)
32073255{
3208   s_imgui.beginFrame(_mx, _my, _button, _scroll, _width, _height, _inputChar, _view);
3256   s_imgui.beginFrame(_mx, _my, _button, _scroll, _width, _height, _width, _height, _inputChar, _view);
32093257}
32103258
32113259void imguiEndFrame()
r244964r244965
32883336   s_imgui.separator(_height);
32893337}
32903338
3291void imguiSeparatorLine(uint16_t _height)
3339void imguiSeparatorLine(uint16_t _height, ImguiAlign::Enum _align)
32923340{
3293   s_imgui.separatorLine(_height);
3341   s_imgui.separatorLine(_height, _align);
32943342}
32953343
32963344int32_t imguiGetWidgetX()
trunk/3rdparty/bgfx/examples/common/imgui/imgui.h
r244964r244965
137137void imguiDestroy();
138138
139139void imguiBeginFrame(int32_t _mx, int32_t _my, uint8_t _button, int32_t _scroll, uint16_t _width, uint16_t _height, char _inputChar = 0, uint8_t _view = 255);
140void imguiBeginFrame(int32_t _mx, int32_t _my, uint8_t _button, int32_t _scroll, uint16_t _width, uint16_t _height, uint16_t _surfaceWidth, uint16_t _surfaceHeight, char _inputChar = 0, uint8_t _view = 255);
140141void imguiEndFrame();
141142
142143void imguiDrawText(int _x, int _y, ImguiTextAlign::Enum _align, const char* _text, uint32_t _argb);
r244964r244965
158159void imguiIndent(uint16_t _width = IMGUI_INDENT_VALUE);
159160void imguiUnindent(uint16_t _width = IMGUI_INDENT_VALUE);
160161void imguiSeparator(uint16_t _height = IMGUI_SEPARATOR_VALUE);
161void imguiSeparatorLine(uint16_t _height = IMGUI_SEPARATOR_VALUE);
162void imguiSeparatorLine(uint16_t _height = IMGUI_SEPARATOR_VALUE, ImguiAlign::Enum = ImguiAlign::LeftIndented);
162163
163164int32_t imguiGetWidgetX();
164165int32_t imguiGetWidgetY();
trunk/3rdparty/bgfx/examples/common/nanovg/nanovg.cpp
r244964r244965
296296   free(ctx);
297297}
298298
299void nvgBeginFrame(NVGcontext* ctx, int windowWidth, int windowHeight, float devicePixelRatio)
299void nvgBeginFrameScaled(NVGcontext* ctx, int windowWidth, int windowHeight, int surfaceWidth, int surfaceHeight, float devicePixelRatio)
300300{
301301/*   printf("Tris: draws:%d  fill:%d  stroke:%d  text:%d  TOT:%d\n",
302302      ctx->drawCallCount, ctx->fillTriCount, ctx->strokeTriCount, ctx->textTriCount,
r244964r244965
307307   nvgReset(ctx);
308308
309309   nvg__setDevicePixelRatio(ctx, devicePixelRatio);
310   
311   ctx->params.renderViewport(ctx->params.userPtr, windowWidth, windowHeight);
312310
311   ctx->params.renderViewport(ctx->params.userPtr, windowWidth, windowHeight, surfaceWidth, surfaceHeight);
312
313313   ctx->drawCallCount = 0;
314314   ctx->fillTriCount = 0;
315315   ctx->strokeTriCount = 0;
316316   ctx->textTriCount = 0;
317317}
318318
319void nvgBeginFrame(NVGcontext* ctx, int windowWidth, int windowHeight, float devicePixelRatio)
320{
321   nvgBeginFrameScaled(ctx, windowWidth, windowHeight, windowWidth, windowHeight, devicePixelRatio);
322}
323
319324void nvgCancelFrame(NVGcontext* ctx)
320325{
321326   ctx->params.renderCancel(ctx->params.userPtr);
trunk/3rdparty/bgfx/examples/common/nanovg/nanovg.h
r244964r244965
116116// frame buffer size. In that case you would set windowWidth/Height to the window size
117117// devicePixelRatio to: frameBufferWidth / windowWidth.
118118void nvgBeginFrame(NVGcontext* ctx, int windowWidth, int windowHeight, float devicePixelRatio);
119void nvgBeginFrameScaled(NVGcontext* ctx, int windowWidth, int windowHeight, int surfaceWidth, int surfaceHeight, float devicePixelRatio);
119120
120121// Cancels drawing the current frame.
121122void nvgCancelFrame(NVGcontext* ctx);
r244964r244965
588589   int (*renderDeleteTexture)(void* uptr, int image);
589590   int (*renderUpdateTexture)(void* uptr, int image, int x, int y, int w, int h, const unsigned char* data);
590591   int (*renderGetTextureSize)(void* uptr, int image, int* w, int* h);
591   void (*renderViewport)(void* uptr, int width, int height);
592   void (*renderViewport)(void* uptr, int width, int height, int surfaceWidth, int surfaceHeight);
592593   void (*renderCancel)(void* uptr);
593594   void (*renderFlush)(void* uptr);
594595   void (*renderFill)(void* uptr, NVGpaint* paint, NVGscissor* scissor, float fringe, const float* bounds, const NVGpath* paths, int npaths);
trunk/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.cpp
r244964r244965
132132
133133      struct GLNVGtexture* textures;
134134      float view[2];
135      float surface[2];
135136      int ntextures;
136137      int ctextures;
137138      int textureId;
r244964r244965
516517      gl->th = handle;
517518   }
518519
519   static void nvgRenderViewport(void* _userPtr, int width, int height)
520   static void nvgRenderViewport(void* _userPtr, int width, int height, int surfaceWidth, int surfaceHeight)
520521   {
521522      struct GLNVGcontext* gl = (struct GLNVGcontext*)_userPtr;
522523      gl->view[0] = (float)width;
523524      gl->view[1] = (float)height;
525      gl->surface[0] = (float)surfaceWidth;
526      gl->surface[1] = (float)surfaceHeight;
524527      bgfx::setViewRect(gl->viewid, 0, 0, width, height);
525528   }
526529
r244964r244965
720723                        );
721724         }
722725
723         bgfx::setUniform(gl->u_viewSize, gl->view);
726         bgfx::setUniform(gl->u_viewSize, gl->surface);
724727
725728         for (uint32_t ii = 0, num = gl->ncalls; ii < num; ++ii)
726729         {
trunk/3rdparty/bgfx/examples/runtime/shaders/dx11/fs_update_3d.bin
r0r244965
1FSHo><u_time$
2ÌDXBC?àZdØñÒÃÙg-
3Ì,„¸ISGNP8DSV_POSITIONTEXCOORD«««OSGN, SV_TARGET««SHDR @CYFŽ £Z`X(pUUb2eò hMЀ ¢2   B
4@?@?22F@??@??E   òFF~`6ò >0
trunk/3rdparty/bgfx/examples/runtime/shaders/dx9/fs_update_3d.bin
r0r244965
Previous 199869 Revisions Next


© 1997-2024 The MAME Team