Commit 5b109a5d authored by nfullagar@google.com's avatar nfullagar@google.com

Add more functionality to graphics3d test (more to follow...)

  - Call Core->ReleaseResource() on multiple graphics3d resources.
Fix for NaCl ppapi graphics 3d resource, so it can be released without
crashing the untrusted plugin.
Add a few more debug prints for future use.
BUG= none
TEST= ppapi_ppb_graphics3d.cc (included)
Review URL: http://codereview.chromium.org/7736006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98686 0039d316-1c4b-4281-b951-d872f2087c98
parent a93379ad
......@@ -21,6 +21,7 @@ CommandBufferNacl::CommandBufferNacl(PP_Resource graphics_3d,
}
CommandBufferNacl::~CommandBufferNacl() {
DebugPrintf("CommandBufferNacl::~CommandBufferNacl()\n");
iface_core_->ReleaseResource(graphics_3d_);
}
......
......@@ -146,6 +146,11 @@ __thread gpu::gles2::GLES2Implementation*
PluginGraphics3D::PluginGraphics3D() : instance_id_(0) { }
PluginGraphics3D::~PluginGraphics3D() {
DebugPrintf("PluginGraphics3D::~PluginGraphics3D()\n");
// Explicitly tear down scopted pointers; ordering below matters.
gles2_implementation_.reset();
gles2_helper_.reset();
command_buffer_.reset();
// Invalidate the cache.
cached_graphics3d_id = 0;
cached_implementation = NULL;
......
......@@ -60,6 +60,7 @@ void TestCreate() {
PP_Resource graphics3d_id = PPBGraphics3DDev()->
Create(pp_instance(), kInvalidResource, attribs);
EXPECT(graphics3d_id != kInvalidResource);
PPBCore()->ReleaseResource(graphics3d_id);
PP_Resource invalid_graphics3d_id = PPBGraphics3DDev()->
Create(0, kInvalidResource, attribs);
EXPECT(invalid_graphics3d_id == kInvalidResource);
......@@ -68,9 +69,11 @@ void TestCreate() {
PP_Resource graphics3d_empty_attrib_id = PPBGraphics3DDev()->
Create(pp_instance(), kInvalidResource, empty_attribs);
EXPECT(graphics3d_empty_attrib_id != kInvalidResource);
PPBCore()->ReleaseResource(graphics3d_empty_attrib_id);
PP_Resource graphics3d_null_attrib_id = PPBGraphics3DDev()->
Create(pp_instance(), kInvalidResource, NULL);
EXPECT(graphics3d_null_attrib_id != kInvalidResource);
PPBCore()->ReleaseResource(graphics3d_null_attrib_id);
TEST_PASSED;
}
......@@ -84,6 +87,7 @@ void TestIsGraphics3D() {
Create(pp_instance(), kInvalidResource, attribs);
EXPECT(graphics3d_id != kInvalidResource);
EXPECT(PPBGraphics3DDev()->IsGraphics3D(graphics3d_id) == PP_TRUE);
PPBCore()->ReleaseResource(graphics3d_id);
TEST_PASSED;
}
......@@ -109,6 +113,7 @@ void SwapCallback(void* user_data, int32_t result) {
int32_t result = PPBGraphics3DDev()->SwapBuffers(info->graphics3d_id, cc);
CHECK(PP_OK_COMPLETIONPENDING == result);
} else {
PPBCore()->ReleaseResource(info->graphics3d_id);
delete info;
}
glSetCurrentContextPPAPI(0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment