浏览代码

Updated screenshots.

bkaradzic 12 年之前
父节点
当前提交
48c477d0ac

+ 6 - 0
README.md

@@ -104,12 +104,18 @@ Use a single distance field font to render text of various size.
 ### 12-lod
 Mesh LOD transitions.
 
+![example-12-lod](https://github.com/bkaradzic/bgfx/raw/master/examples/12-lod/screenshot.png)
+
 ### 13-stencil
 Stencil reflections and shadows.
 
+![example-13-stencil](https://github.com/bkaradzic/bgfx/raw/master/examples/13-stencil/screenshot.png)
+
 ### 14-shadowvolumes
 Shadow volumes.
 
+![example-14-shadowvolumes](https://github.com/bkaradzic/bgfx/raw/master/examples/14-shadowvolumes/screenshot.png)
+
 Dependencies
 ------------
 

二进制
examples/01-cubes/screenshot.png


二进制
examples/02-metaballs/screenshot.png


二进制
examples/03-raymarch/screenshot.png


二进制
examples/04-mesh/screenshot.png


二进制
examples/05-instancing/screenshot.png


二进制
examples/06-bump/screenshot.png


二进制
examples/09-hdr/screenshot.png


二进制
examples/10-font/screenshot.png


二进制
examples/11-fontsdf/screenshot.png


二进制
examples/12-lod/screenshot.png


二进制
examples/13-stencil/screenshot.png


二进制
examples/14-shadowvolumes/screenshot.png


+ 30 - 8
examples/common/entry/entry.cpp

@@ -6,6 +6,8 @@
 #include <bgfx.h>
 #include <bx/string.h>
 
+#include <time.h>
+
 #include "entry_p.h"
 #include "cmd.h"
 #include "input.h"
@@ -72,6 +74,24 @@ namespace entry
 				bgfx::setDebug(s_debug);
 				return 0;
 			}
+			else if (0 == strcmp(_argv[1], "screenshot") )
+			{
+				if (_argc > 2)
+				{
+					bgfx::saveScreenShot(_argv[2]);
+				}
+				else
+				{
+					time_t tt;
+					time(&tt);
+
+					char filePath[256];
+					bx::snprintf(filePath, sizeof(filePath), "temp/screenshot-%d", tt);
+					bgfx::saveScreenShot(filePath);
+				}
+
+				return 0;
+			}
 		}
 
 		return 1;
@@ -85,12 +105,13 @@ namespace entry
 
 	static const InputBinding s_bindings[] = 
 	{
-		{ entry::Key::KeyQ, entry::Modifier::LeftCtrl,  1, cmd, "exit"                              },
-		{ entry::Key::F1,   entry::Modifier::None,      1, cmd, "graphics stats"                    },
-		{ entry::Key::F1,   entry::Modifier::LeftShift, 1, cmd, "graphics stats 0\ngraphics text 0" },
-		{ entry::Key::F3,   entry::Modifier::None,      1, cmd, "graphics wireframe"                },
-		{ entry::Key::F7,   entry::Modifier::None,      1, cmd, "graphics vsync"                    },
-		{ entry::Key::F8,   entry::Modifier::None,      1, cmd, "graphics msaa"                     },
+		{ entry::Key::KeyQ,  entry::Modifier::LeftCtrl,  1, cmd, "exit"                              },
+		{ entry::Key::F1,    entry::Modifier::None,      1, cmd, "graphics stats"                    },
+		{ entry::Key::F1,    entry::Modifier::LeftShift, 1, cmd, "graphics stats 0\ngraphics text 0" },
+		{ entry::Key::F3,    entry::Modifier::None,      1, cmd, "graphics wireframe"                },
+		{ entry::Key::F7,    entry::Modifier::None,      1, cmd, "graphics vsync"                    },
+		{ entry::Key::F8,    entry::Modifier::None,      1, cmd, "graphics msaa"                     },
+		{ entry::Key::Print, entry::Modifier::None,      1, cmd, "graphics screenshot"               },
 
 		INPUT_BINDING_END
 	};
@@ -176,9 +197,10 @@ namespace entry
 					break;
 				}
 			}
-		} while (NULL != ev);
 
-		inputProcess();
+			inputProcess();
+
+		} while (NULL != ev);
 
 		if (_reset != s_reset)
 		{

+ 11 - 0
examples/common/entry/entry_windows.cpp

@@ -415,6 +415,17 @@ namespace entry
 					{
 						uint8_t modifiers = translateKeyModifiers();
 						Key::Enum key = translateKey(_wparam);
+
+						if (Key::Print == key
+						&&  0x3 == (_lparam>>30) )
+						{
+							// VK_SNAPSHOT doesn't generate keydown event. Fire on down event when previous
+							// key state bit is set to 1 and transition state bit is set to 1.
+							//
+							// http://msdn.microsoft.com/en-us/library/windows/desktop/ms646280%28v=vs.85%29.aspx
+							m_eventQueue.postKeyEvent(key, modifiers, true);
+						}
+
 						m_eventQueue.postKeyEvent(key, modifiers, _id == WM_KEYDOWN || _id == WM_SYSKEYDOWN);
 					}
 					break;