Previous 199869 Revisions Next

r36598 Tuesday 24th March, 2015 at 09:14:32 UTC by Olivier Galibert
Merge pull request #148 from lucab/lucab/mame-lua/misc

luaengine: screen drawing fixes and initial docs
[/trunk]makefile
[3rdparty/bgfx]README.md
[3rdparty/bgfx/3rdparty/ocornut-imgui]imgui.cpp
[3rdparty/bgfx/examples/08-update]fs_update_3d.sc* update.cpp
[3rdparty/bgfx/examples/25-c99]helloworld.c*
[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 genie.lua
[3rdparty/bgfx/src]bgfx_shader.sh renderer_d3d11.cpp renderer_d3d9.h renderer_gl.cpp renderer_gl.h vertexdecl.cpp
[3rdparty/bgfx/tools/shaderc]shaderc.cpp
[3rdparty/bx/include/bx]platform.h
[3rdparty/bx/scripts]toolchain.lua
[3rdparty/bx/tools/bin/darwin]genie
[3rdparty/bx/tools/bin/linux]genie
[3rdparty/bx/tools/bin/windows]genie.exe
[3rdparty/genie].editorconfig* 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/scripts]genie.lua
[3rdparty/genie/src/actions/make]make_cpp.lua
[3rdparty/genie/src/actions/vstudio]_vstudio.lua vs2010_vcxproj.lua
[3rdparty/genie/src/base]api.lua bake.lua
[3rdparty/genie/src/host]scripts.c
[3rdparty/lua/src]luaconf.h
[3rdparty/mongoose]mongoose.c
[3rdparty/mongoose/docs]ReleaseNotes.md
[3rdparty/mongoose/examples].gitignore* Makefile
[3rdparty/mongoose/examples/web_server]web_server.c
[3rdparty/mongoose/test]unit_test.c
[hash]gamegear.xml gameking.xml gbcolor.xml megadriv.xml nes.xml pc8801_flop.xml pc98.xml pet_rom.xml pico.xml sms.xml snes.xml snes_strom.xml
[src/build]makedep.c makemak.c
[src/emu]emucore.h emuopts.c emuopts.h luaengine.c mame.c schedule.c video.c video.h
[src/emu/bus/nes]nes_pcb.inc
[src/emu/cpu/h8]h8.c
[src/emu/cpu/hmcs40]hmcs40.c hmcs40d.c hmcs40op.inc
[src/emu/cpu/i386]i386.h i386ops.h pentops.inc
[src/emu/cpu/i960]i960.c
[src/emu/cpu/sharc]sharc.c
[src/emu/machine]machine.mak mcf5206e.c mcf5206e.h tmp68301.c tms6100.c vrc4373.c* vrc4373.h*
[src/emu/netlist]plists.h
[src/emu/sound]es1373.c* es1373.h* okim9810.c okim9810.h sound.mak wavwrite.c
[src/emu/ui]filemngr.c filemngr.h
[src/emu/video]video.mak voodoo_pci.c* voodoo_pci.h*
[src/lib/formats]a26_cas.c a5105_dsk.c abc800_dsk.c ace_tap.c adam_cas.c adam_dsk.c ami_dsk.c ap_dsk35.c apf_apt.c apollo_dsk.c applix_dsk.c apridisk.c asst128_dsk.c atari_dsk.c atarist_dsk.c atom_tap.c bw12_dsk.c bw2_dsk.c cassimg.c cbm_crt.c cbm_crt.h cbm_tap.c ccvf_dsk.c cgen_cas.c coco_cas.c coco_dsk.c comx35_dsk.c concept_dsk.c coupedsk.c cpis_dsk.c cqm_dsk.c csw_cas.c d64_dsk.c d64_dsk.h d67_dsk.c d71_dsk.c d80_dsk.c d81_dsk.c d82_dsk.c d88_dsk.c dcp_dsk.c dfi_dsk.c dim_dsk.c dip_dsk.c dmk_dsk.c dmv_dsk.c dsk_dsk.c ep64_dsk.c esq16_dsk.c esq8_dsk.c excali64_dsk.c fc100_cas.c fdd_dsk.c fdi_dsk.c flex_dsk.c flopimg.c fm7_cas.c fmsx_cas.c fmtowns_dsk.c g64_dsk.c gtp_cas.c hect_dsk.c hect_tap.c hxcmfm_dsk.c imd_dsk.c ioprocs.c ipf_dsk.c iq151_dsk.c itt3030_dsk.c kaypro_dsk.c kc85_dsk.c kc_cas.c kim1_cas.c lviv_lvt.c m20_dsk.c m5_dsk.c mbee_cas.c mfi_dsk.c mm_dsk.c msx_dsk.c mz_cas.c nanos_dsk.c naslite_dsk.c nes_dsk.c nfd_dsk.c orao_cas.c oric_dsk.c oric_tap.c p6001_cas.c pasti_dsk.c pc98_dsk.c pc98fdi_dsk.c pc_dsk.c phc25_cas.c pmd_cas.c primoptp.c pyldin_dsk.c ql_dsk.c rk_cas.c rx50_dsk.c sc3000_bit.c sf7000_dsk.c smx_dsk.c sol_cas.c sorc_cas.c sorc_dsk.c sord_cas.c spc1000_cas.c st_dsk.c svi_cas.c svi_dsk.c tandy2k_dsk.c td0_dsk.c thom_cas.c thom_dsk.c ti99_dsk.c tiki100_dsk.c trd_dsk.c trs_cas.c trs_dsk.c tvc_cas.c tvc_dsk.c tzx_cas.c uef_cas.c upd765_dsk.c vg5k_cas.c victor9k_dsk.c victor9k_dsk.h vt_cas.c vt_dsk.c vtech1_dsk.c wd177x_dsk.c x07_cas.c x1_tap.c xdf_dsk.c z80ne_dsk.c zx81_p.c
[src/lib/util]avhuff.c aviio.c bitmap.c bitmap.h cdrom.c chd.c chdcd.c chdcodec.c corefile.c corestr.h coretmpl.h cstrpool.c delegate.c delegate.h flac.c harddisk.c huffman.c opresolv.c options.c palette.c png.c tagmap.c xmlfile.c zippath.c
[src/mame]mame.lst mame.mak
[src/mame/audio]hng64.c subs.c
[src/mame/drivers]astinvad.c astrcorp.c atlantis.c cocoloco.c cps1.c dynax.c galaxian.c goldstar.c iteagle.c karnov.c megaplay.c megasys1.c pinball2k.c psikyo.c queen.c re900.c realbrk.c rltennis.c seta.c seta2.c srmp2.c ssrj.c sstrangr.c sub.c subs.c suna16.c supdrapo.c suprgolf.c suprloco.c suprridr.c thedeep.c toaplan2.c ttchamp.c twins.c
[src/mame/includes]dynax.h goldstar.h realbrk.h rltennis.h seta.h seta2.h srmp2.h ssrj.h subs.h suna16.h suprloco.h suprridr.h thedeep.h
[src/mame/layout]unkch.lay*
[src/mame/machine]iteagle_fpga.c* iteagle_fpga.h* subs.c
[src/mame/video]cps1.c decmxc06.c decmxc06.h dynax.c realbrk.c rltennis.c seta.c seta001.c seta001.h seta2.c srmp2.c ssrj.c subs.c suna16.c suprloco.c suprridr.c thedeep.c
[src/mess]mess.lst mess.mak
[src/mess/audio]upd1771.c
[src/mess/drivers]a7800.c elecbowl.c hh_hmcs40.c hh_pic16.c hh_tms1k.c hh_ucom4.c m24.c mbdtower.c* sms.c snes.c ti99_4x.c ticalc1x.c tispeak.c
[src/mess/includes]hh_tms1k.h*
[src/mess/layout]ebball2.lay* ebball3.lay mbdtower.lay* ssimon.lay*
[src/mess/machine]m24_kbd.c* m24_kbd.h*
[src/mess/tools/floptool]main.c
[src/mess/tools/imgtool]iflopimg.c imgterrs.c library.c library.h modules.c
[src/osd/modules/debugger]debugwin.c
[src/osd/modules/font]font_windows.c
[src/osd/modules/lib]osdobj_common.c
[src/osd/sdl/man]castool.1 chdman.1 floptool.1 imgtool.1 jedutil.1 ldresample.1 ldverify.1 mame.6 mess.6 romcmp.1 testkeys.1
[src/osd/windows]windows.mak winprefix.h
[src/tools]chdman.c ldresample.c ldverify.c nltool.c pngcmp.c regrep.c split.c src2html.c tools.mak

trunk/3rdparty/bgfx/3rdparty/ocornut-imgui/imgui.cpp
r245109r245110
353353#endif
354354#ifdef __GNUC__
355355#pragma GCC diagnostic ignored "-Wunused-function"          // warning: 'xxxx' defined but not used
356#pragma GCC diagnostic ignored "-Wunused-parameter"         // warning: unused parameter ‘xxxx’
357#pragma GCC diagnostic ignored "-Wtype-limits"              // warning: comparison is always true due to limited range of data type
358#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"      // warning: ‘xxxx’ may be used uninitialized in this function
356359#endif
357360
358361//-------------------------------------------------------------------------
trunk/3rdparty/bgfx/README.md
r245109r245110
44What is it?
55-----------
66
7Cross-platform rendering library.
7Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style
8rendering library.
89
910Supported rendering backends:
1011
r245109r245110
319320Steps bellow are for default build system inside bgfx repository. There is
320321alterative way to build bgfx and examples with [fips](https://github.com/floooh/fips-bgfx/#fips-bgfx).
321322
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
330323### Getting source
331324
332325   git clone git://github.com/bkaradzic/bx.git
333326   git clone git://github.com/bkaradzic/bgfx.git
327
328### Quick start (Windows with Visual Studio)
329
330Enter bgfx directory:
331
334332   cd bgfx
333
334Generate Visual Studio 2013 project files:
335
336   ..\bx\tools\bin\windows\genie vs2013
337
338Open bgfx solution in Visual Studio 2013:
339
340   start .build\projects\vs2013\bgfx.sln
341
342### Generating project files for all targets
343
344   cd bgfx
335345   make
336346
337347After calling `make`, .build/projects/* directory will be generated. All
r245109r245110
361371
362372### Prerequisites for Windows
363373
374Windows users download GnuWin32 utilities from: 
375[http://gnuwin32.sourceforge.net/packages/make.htm](http://gnuwin32.sourceforge.net/packages/make.htm) 
376[http://gnuwin32.sourceforge.net/packages/coreutils.htm](http://gnuwin32.sourceforge.net/packages/coreutils.htm) 
377[http://gnuwin32.sourceforge.net/packages/libiconv.htm](http://gnuwin32.sourceforge.net/packages/libiconv.htm) 
378[http://gnuwin32.sourceforge.net/packages/libintl.htm](http://gnuwin32.sourceforge.net/packages/libintl.htm)
379
364380When building on Windows, you have to set DXSDK_DIR environment variable to
365381point to DirectX SDK directory.
366382
trunk/3rdparty/bgfx/examples/08-update/fs_update_3d.sc
r0r245110
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
r245109r245110
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
r245109r245110
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
r245109r245110
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();
r245109r245110
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);
r245109r245110
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);
r245109r245110
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/25-c99/helloworld.c
r0r245110
1/*
2 * Copyright 2011-2015 Branimir Karadzic. All rights reserved.
3 * License: http://www.opensource.org/licenses/BSD-2-Clause
4 */
5
6#include <bgfx.c99.h>
7#include "../00-helloworld/logo.h"
8
9extern bool entry_process_events(uint32_t* _width, uint32_t* _height, uint32_t* _debug, uint32_t* _reset);
10
11uint16_t uint16_max(uint16_t _a, uint16_t _b)
12{
13   return _a < _b ? _b : _a;
14}
15
16int _main_(int _argc, char** _argv)
17{
18   (void)_argc;
19   (void)_argv;
20   uint32_t width = 1280;
21   uint32_t height = 720;
22   uint32_t debug = BGFX_DEBUG_TEXT;
23   uint32_t reset = BGFX_RESET_VSYNC;
24
25   bgfx_init(BGFX_RENDERER_TYPE_COUNT, NULL, NULL);
26   bgfx_reset(width, height, reset);
27
28   // Enable debug text.
29   bgfx_set_debug(debug);
30
31   bgfx_set_view_clear(0
32      , BGFX_CLEAR_COLOR|BGFX_CLEAR_DEPTH
33      , 0x303030ff
34      , 1.0f
35      , 0
36      );
37
38   while (!entry_process_events(&width, &height, &debug, &reset) )
39   {
40      // Set view 0 default viewport.
41      bgfx_set_view_rect(0, 0, 0, width, height);
42
43      // This dummy draw call is here to make sure that view 0 is cleared
44      // if no other draw calls are submitted to view 0.
45      bgfx_submit(0, 0);
46
47      // Use debug font to print information about this example.
48      bgfx_dbg_text_clear(0, false);
49      bgfx_dbg_text_image(uint16_max(width/2/8, 20)-20
50                   , uint16_max(height/2/16, 6)-6
51                   , 40
52                   , 12
53                   , s_logo
54                   , 160
55                   );
56      bgfx_dbg_text_printf(0, 1, 0x4f, "bgfx/examples/25-c99");
57      bgfx_dbg_text_printf(0, 2, 0x6f, "Description: Initialization and debug text with C99 API.");
58
59      // Advance to next frame. Rendering thread will be kicked to
60      // process submitted rendering primitives.
61      bgfx_frame();
62   }
63
64   // Shutdown bgfx.
65   bgfx_shutdown();
66
67   return 0;
68}
trunk/3rdparty/bgfx/examples/common/entry/entry_osx.mm
r245109r245110
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            });
r245109r245110
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
r245109r245110
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      {
r245109r245110
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;
r245109r245110
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;
r245109r245110
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
r245109r245110
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)
r245109r245110
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);
r245109r245110
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;
r245109r245110
884896
885897      clearInput();
886898
899      nvgEndFrame(m_nvg);
887900      IMGUI_endFrame();
888901   }
889902
r245109r245110
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
r245109r245110
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)
r245109r245110
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;
r245109r245110
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)
r245109r245110
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);
r245109r245110
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');
r245109r245110
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;
r245109r245110
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;
r245109r245110
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);
r245109r245110
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
r245109r245110
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) );
r245109r245110
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   }
r245109r245110
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
r245109r245110
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   {
r245109r245110
31473188   NVGcontext* m_nvg;
31483189
31493190   uint8_t m_view;
3191   uint16_t m_surfaceWidth;
3192   uint16_t m_surfaceHeight;
31503193   uint16_t m_viewWidth;
31513194   uint16_t m_viewHeight;
31523195
r245109r245110
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()
r245109r245110
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
r245109r245110
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);
r245109r245110
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
r245109r245110
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,
r245109r245110
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
r245109r245110
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);
r245109r245110
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
r245109r245110
132132
133133      struct GLNVGtexture* textures;
134134      float view[2];
135      float surface[2];
135136      int ntextures;
136137      int ctextures;
137138      int textureId;
r245109r245110
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
r245109r245110
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
r0r245110
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
r0r245110
Previous 199869 Revisions Next


© 1997-2024 The MAME Team