summaryrefslogtreecommitdiffstats
path: root/o3d/tests
diff options
context:
space:
mode:
authorapatrick@google.com <apatrick@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-19 18:43:09 +0000
committerapatrick@google.com <apatrick@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-19 18:43:09 +0000
commit52f88d8d6be4ddfad56c25d3c9a13cd22a768628 (patch)
treeccf9de7149854ab9c04fe451fb8b58a9de41e9d4 /o3d/tests
parent52d08b12e8e7ff7c9b865837a2aeb17fb9dc2d42 (diff)
downloadchromium_src-52f88d8d6be4ddfad56c25d3c9a13cd22a768628.zip
chromium_src-52f88d8d6be4ddfad56c25d3c9a13cd22a768628.tar.gz
chromium_src-52f88d8d6be4ddfad56c25d3c9a13cd22a768628.tar.bz2
Changed O3D to use CommandBuffer in-process. Still not connecting to the GPU plugin.
I removed all the NaCl dependencies. Synchronous messages are now sent by NPAPI. Removed BufferSyncInterface and replaced it with CommandBuffer. CommandBufferHelper now uses NPAPI. Changed some unsigned ints to int32s because NPAPI doesn't support unsigned int. There are now two subclasses of RendererCB. RendererCBLocal is for use with an in-process CommandBuffer. RendererCBRemote is for use with an out-of-process CommandBuffer. I'm going to rearrange the locations of the source files under gpu_plugin next. CommandBuffer and GPUProcessor probably belong in the command_buffer_service library now. np_utils and system_services should be standalone libraries. TEST=none BUG=none Review URL: http://codereview.chromium.org/266068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29429 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/tests')
-rw-r--r--o3d/tests/build.scons15
-rw-r--r--o3d/tests/common/cross/main.cc2
-rw-r--r--o3d/tests/common/win/testing_common.cc52
-rw-r--r--o3d/tests/tests.gyp19
4 files changed, 58 insertions, 30 deletions
diff --git a/o3d/tests/build.scons b/o3d/tests/build.scons
index d26e4bf..7d20e6c 100644
--- a/o3d/tests/build.scons
+++ b/o3d/tests/build.scons
@@ -279,21 +279,6 @@ if env['TARGET_PLATFORM']=='WINDOWS':
]
)
-# add command buffer renderer unit tests only on that renderer platform.
-if 'RENDERER_CB' in env['CPPDEFINES']:
- tests += [
- 'command_buffer/client/cross/id_allocator_test.cc',
- 'command_buffer/common/cross/bitfield_helpers_test.cc',
- 'command_buffer/service/cross/effect_utils_test.cc',
- 'command_buffer/service/cross/resource_test.cc',
- 'command_buffer/client/cross/cmd_buffer_helper_test.cc',
- 'command_buffer/client/cross/fenced_allocator_test.cc',
- 'command_buffer/client/cross/buffer_sync_proxy_test.cc',
- 'command_buffer/service/cross/buffer_rpc_test.cc',
- 'command_buffer/service/cross/cmd_buffer_engine_test.cc',
- 'command_buffer/service/cross/cmd_parser_test.cc',
- ]
-
unit_tests = env.Program('unit_tests', tests)
# After building the test executable, force the windows executable to output
diff --git a/o3d/tests/common/cross/main.cc b/o3d/tests/common/cross/main.cc
index b8c3fc3..540107d 100644
--- a/o3d/tests/common/cross/main.cc
+++ b/o3d/tests/common/cross/main.cc
@@ -33,6 +33,7 @@
// defines the common main() for all unit tests
#include <build/build_config.h>
#include "base/at_exit.h"
+#include "base/message_loop.h"
#include "gtest/gtest.h"
#ifdef OS_WIN
@@ -41,6 +42,7 @@ int test_main(int argc, wchar_t **argv) {
int test_main(int argc, char **argv) {
#endif
::base::AtExitManager at_exit_manager;
+ MessageLoop message_loop;
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
diff --git a/o3d/tests/common/win/testing_common.cc b/o3d/tests/common/win/testing_common.cc
index e498331..0a31823 100644
--- a/o3d/tests/common/win/testing_common.cc
+++ b/o3d/tests/common/win/testing_common.cc
@@ -29,7 +29,6 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
// Contains windows-specific code for setting up the Client object
// used in the unit tests. Defines WinMain and a WindowProc for running
// the GUnit tests
@@ -49,6 +48,27 @@
#include "core/cross/renderer.h"
#include "core/cross/renderer_platform.h"
#include "core/cross/types.h"
+#include "core/win/display_window_win.h"
+
+#if defined(RENDERER_CB)
+#include "core/cross/command_buffer/renderer_cb.h"
+#include "core/cross/command_buffer/display_window_cb.h"
+#include "gpu_plugin/command_buffer.h"
+#include "gpu_plugin/np_utils/np_browser_stub.h"
+#endif
+
+using o3d::DisplayWindowWindows;
+
+#if defined(RENDERER_CB)
+using o3d::DisplayWindowCB;
+using o3d::gpu_plugin::CommandBuffer;
+using o3d::gpu_plugin::NPObjectPointer;
+using o3d::gpu_plugin::StubNPBrowser;
+using o3d::RendererCBLocal;
+#endif
+
+const int kWindowWidth = 512;
+const int kWindowHeight = 512;
o3d::ServiceLocator* g_service_locator = NULL;
o3d::DisplayWindow* g_display_window = NULL;
@@ -112,8 +132,8 @@ int WINAPI WinMain(HINSTANCE instance,
WS_OVERLAPPEDWINDOW,
-1000,
0,
- 512,
- 512,
+ kWindowWidth,
+ kWindowHeight,
0,
0,
instance,
@@ -153,16 +173,36 @@ int WINAPI WinMain(HINSTANCE instance,
o3d::Profiler profiler(g_service_locator);
o3d::Features features(g_service_locator);
+ // TODO(apatrick): We can have an NPBrowser in the other configurations when
+ // we move over to gyp. This is just to avoid having to write scons files
+ // for np_utils.
+#if defined(RENDERER_CB)
+ StubNPBrowser browser;
+#endif
+
// create a renderer device based on the current platform
g_renderer = o3d::Renderer::CreateDefaultRenderer(g_service_locator);
// Initialize the renderer for off-screen rendering if kOffScreenRenderer
// is in the environment.
bool success;
- o3d::DisplayWindowWindows* display_window =
- new o3d::DisplayWindowWindows();
- display_window = display_window;
+
+#if defined(RENDERER_CB)
+ const unsigned int kDefaultCommandBufferSize = 256 << 10;
+
+ DisplayWindowCB* display_window = new o3d::DisplayWindowCB;
+ display_window->set_npp(NULL);
+ display_window->set_command_buffer(RendererCBLocal::CreateCommandBuffer(
+ NULL,
+ g_window_handle,
+ kDefaultCommandBufferSize));
+ display_window->set_width(kWindowWidth);
+ display_window->set_height(kWindowHeight);
+#else
+ DisplayWindowWindows* display_window = new o3d::DisplayWindowWindows;
display_window->set_hwnd(g_window_handle);
+#endif
+
g_display_window = display_window;
bool offscreen = (::GetEnvironmentVariableW(kOffScreenRenderer,
NULL, 0) != 0);
diff --git a/o3d/tests/tests.gyp b/o3d/tests/tests.gyp
index 92d4fbf..1aef0cc 100644
--- a/o3d/tests/tests.gyp
+++ b/o3d/tests/tests.gyp
@@ -102,6 +102,16 @@
],
},
],
+ ['renderer == "cb"',
+ {
+ 'dependencies': [
+ '../command_buffer/command_buffer.gyp:command_buffer_client_test',
+ '../command_buffer/command_buffer.gyp:command_buffer_common_test',
+ '../command_buffer/command_buffer.gyp:command_buffer_service_test',
+ '../gpu_plugin/gpu_plugin.gyp:np_utils',
+ ]
+ },
+ ],
['OS == "mac"',
{
'dependencies': [
@@ -226,15 +236,6 @@
],
},
],
- ['cb_service != "none"',
- {
- 'dependencies' : [
- '../command_buffer/command_buffer.gyp:command_buffer_client_test',
- '../command_buffer/command_buffer.gyp:command_buffer_common_test',
- '../command_buffer/command_buffer.gyp:command_buffer_service_test',
- ],
- },
- ],
],
},
],