Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Unified Diff: ppapi/native_client/tests/ppapi_browser/ppb_graphics3d/ppapi_ppb_graphics3d.cc

Issue 7737013: Move PPAPI graphics3d and opengles interfaces out of Dev. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/tests/ppapi_browser/ppb_graphics3d/ppapi_ppb_graphics3d.cc
===================================================================
--- ppapi/native_client/tests/ppapi_browser/ppb_graphics3d/ppapi_ppb_graphics3d.cc (revision 99848)
+++ ppapi/native_client/tests/ppapi_browser/ppb_graphics3d/ppapi_ppb_graphics3d.cc (working copy)
@@ -14,19 +14,19 @@
#include "native_client/tests/ppapi_test_lib/get_browser_interface.h"
#include "native_client/tests/ppapi_test_lib/internal_utils.h"
#include "native_client/tests/ppapi_test_lib/test_interface.h"
-#include "ppapi/c/dev/pp_graphics_3d_dev.h"
-#include "ppapi/c/dev/ppb_graphics_3d_dev.h"
-#include "ppapi/c/dev/ppb_opengles_dev.h"
#include "ppapi/c/dev/ppb_testing_dev.h"
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/pp_graphics_3d.h"
#include "ppapi/c/pp_point.h"
#include "ppapi/c/pp_rect.h"
#include "ppapi/c/pp_size.h"
#include "ppapi/c/ppb_core.h"
+#include "ppapi/c/ppb_graphics_3d.h"
#include "ppapi/c/ppb_image_data.h"
#include "ppapi/c/ppb_instance.h"
+#include "ppapi/c/ppb_opengles.h"
#include "ppapi/c/ppb_url_loader.h"
#include "ppapi/lib/gl/gles2/gl2ext_ppapi.h"
@@ -40,13 +40,13 @@
// Tests the Graphics3D interface is available.
void TestGraphics3DInterface() {
- EXPECT(PPBGraphics3DDev() != NULL);
+ EXPECT(PPBGraphics3D() != NULL);
TEST_PASSED;
}
// Tests the OpenGLES interface is available.
void TestOpenGLES2Interface() {
- EXPECT(PPBOpenGLES2Dev() != NULL);
+ EXPECT(PPBOpenGLES2() != NULL);
TEST_PASSED;
}
@@ -56,20 +56,20 @@
PP_GRAPHICS3DATTRIB_WIDTH, kWidth,
PP_GRAPHICS3DATTRIB_HEIGHT, kHeight,
PP_GRAPHICS3DATTRIB_NONE};
- PP_Resource graphics3d_id = PPBGraphics3DDev()->
+ PP_Resource graphics3d_id = PPBGraphics3D()->
Create(pp_instance(), kInvalidResource, attribs);
EXPECT(graphics3d_id != kInvalidResource);
PPBCore()->ReleaseResource(graphics3d_id);
- PP_Resource invalid_graphics3d_id = PPBGraphics3DDev()->
+ PP_Resource invalid_graphics3d_id = PPBGraphics3D()->
Create(0, kInvalidResource, attribs);
EXPECT(invalid_graphics3d_id == kInvalidResource);
int32_t empty_attribs[] = {
PP_GRAPHICS3DATTRIB_NONE};
- PP_Resource graphics3d_empty_attrib_id = PPBGraphics3DDev()->
+ PP_Resource graphics3d_empty_attrib_id = PPBGraphics3D()->
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()->
+ PP_Resource graphics3d_null_attrib_id = PPBGraphics3D()->
Create(pp_instance(), kInvalidResource, NULL);
EXPECT(graphics3d_null_attrib_id != kInvalidResource);
PPBCore()->ReleaseResource(graphics3d_null_attrib_id);
@@ -82,10 +82,10 @@
PP_GRAPHICS3DATTRIB_WIDTH, kWidth,
PP_GRAPHICS3DATTRIB_HEIGHT, kHeight,
PP_GRAPHICS3DATTRIB_NONE};
- PP_Resource graphics3d_id = PPBGraphics3DDev()->
+ PP_Resource graphics3d_id = PPBGraphics3D()->
Create(pp_instance(), kInvalidResource, attribs);
EXPECT(graphics3d_id != kInvalidResource);
- EXPECT(PPBGraphics3DDev()->IsGraphics3D(graphics3d_id) == PP_TRUE);
+ EXPECT(PPBGraphics3D()->IsGraphics3D(graphics3d_id) == PP_TRUE);
PPBCore()->ReleaseResource(graphics3d_id);
TEST_PASSED;
}
@@ -118,7 +118,7 @@
if (info->frame_counter < info->frame_end) {
PP_CompletionCallback cc =
PP_MakeCompletionCallback(TestSwapCallback, info);
- int32_t result = PPBGraphics3DDev()->SwapBuffers(info->graphics3d_id, cc);
+ int32_t result = PPBGraphics3D()->SwapBuffers(info->graphics3d_id, cc);
CHECK(PP_OK_COMPLETIONPENDING == result);
} else {
PPBCore()->ReleaseResource(info->graphics3d_id);
@@ -135,7 +135,7 @@
PP_GRAPHICS3DATTRIB_WIDTH, kWidth,
PP_GRAPHICS3DATTRIB_HEIGHT, kHeight,
PP_GRAPHICS3DATTRIB_NONE};
- PP_Resource graphics3d_id = PPBGraphics3DDev()->
+ PP_Resource graphics3d_id = PPBGraphics3D()->
Create(pp_instance(), kInvalidResource, attribs);
EXPECT(graphics3d_id != kInvalidResource);
int32_t success = PPBInstance()->BindGraphics(pp_instance(), graphics3d_id);
@@ -150,6 +150,86 @@
PPBCore()->CallOnMainThread(0, cc, PP_OK);
}
+void TestResizeAndSwapCallback(void* user_data, int32_t result) {
+ EXPECT(result == PP_OK);
+ RenderInfo* info = static_cast<RenderInfo *>(user_data);
+ int32_t new_width = kWidth - info->frame_counter * 2;
+ int32_t new_height = kHeight - info->frame_counter * 2;
+ if (new_width < 0) new_width = 0;
+ if (new_height < 0) new_height = 0;
+ int32_t resize_result = PPBGraphics3D()->ResizeBuffers(info->graphics3d_id,
+ new_width, new_height);
+ EXPECT(resize_result == PP_OK);
+ // Set graphics3d_id to the main context, so we can use normal gl style calls
+ // instead of going through the PPAPI PPBOpenGLES2 interface.
+ glSetCurrentContextPPAPI(info->graphics3d_id);
+ // Note: still use original width & height in glViewport; visual inspection
+ // should show a clipped window that shrinks to new_width, new_height size.
+ glViewport(0, 0, new_width, new_height);
+ float green = float(info->frame_counter) / float(info->frame_end);
+ glClearColor(0.0f, green, 0.0f, 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT);
+ info->frame_counter += info->frame_increment;
+ if (info->frame_counter < info->frame_end) {
+ PP_CompletionCallback cc =
+ PP_MakeCompletionCallback(TestResizeAndSwapCallback, info);
+ int32_t result = PPBGraphics3D()->SwapBuffers(info->graphics3d_id, cc);
+ CHECK(PP_OK_COMPLETIONPENDING == result);
+ } else {
+ PPBCore()->ReleaseResource(info->graphics3d_id);
+ delete info;
+ TEST_PASSED;
+ }
+ glSetCurrentContextPPAPI(0);
+}
+
+// Tests PPB_Graphics3D::ResizeBuffers().
+void TestResizeBuffers(int32_t* attribs) {
+ PP_Resource graphics3d_id = PPBGraphics3D()->
+ Create(pp_instance(), kInvalidResource, attribs);
+ EXPECT(graphics3d_id != kInvalidResource);
+ int32_t success = PPBInstance()->BindGraphics(pp_instance(), graphics3d_id);
+ EXPECT(success == PP_TRUE);
+ int32_t result;
+ // Attempt negative width & heights
+ result = PPBGraphics3D()->ResizeBuffers(graphics3d_id, -1000, 0);
+ EXPECT(result == PP_ERROR_BADARGUMENT);
+ result = PPBGraphics3D()->ResizeBuffers(graphics3d_id, 100, -1);
+ EXPECT(result == PP_ERROR_BADARGUMENT);
+ result = PPBGraphics3D()->ResizeBuffers(graphics3d_id, -1, -1);
+ EXPECT(result == PP_ERROR_BADARGUMENT);
+ RenderInfo* render_info = new RenderInfo;
+ render_info->graphics3d_id = graphics3d_id;
+ render_info->frame_counter = 0;
+ render_info->frame_end = 256;
+ render_info->frame_increment = 8;
+ PP_CompletionCallback cc = PP_MakeCompletionCallback(
+ TestResizeAndSwapCallback, render_info);
+ PPBCore()->CallOnMainThread(0, cc, PP_OK);
+}
+
+
+// Tests PPB_Graphics3D::ResizeBuffers() w/o depth buffer attached.
+void TestResizeBuffersWithoutDepthBuffer() {
+ int32_t attribs[] = {
+ PP_GRAPHICS3DATTRIB_WIDTH, kWidth,
+ PP_GRAPHICS3DATTRIB_HEIGHT, kHeight,
+ PP_GRAPHICS3DATTRIB_NONE};
+ TestResizeBuffers(attribs);
+}
+
+
+// Tests PPB_Graphics3D::ResizeBuffers() w/ depth buffer attached.
+void TestResizeBuffersWithDepthBuffer() {
+ int32_t attribs[] = {
+ PP_GRAPHICS3DATTRIB_WIDTH, kWidth,
+ PP_GRAPHICS3DATTRIB_HEIGHT, kHeight,
+ PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 32,
+ PP_GRAPHICS3DATTRIB_NONE};
+ TestResizeBuffers(attribs);
+}
+
+
// Tests glTerminatePPAPI.
void Test_glTerminatePPAPI() {
GLboolean terminate = glTerminatePPAPI();
@@ -166,6 +246,10 @@
RegisterTest("TestIsGraphics3D", TestIsGraphics3D);
RegisterTest("Test_glInitializePPAPI", Test_glInitializePPAPI);
RegisterTest("TestSwapBuffers", TestSwapBuffers);
+ RegisterTest("TestResizeBuffersWithoutDepthBuffer",
+ TestResizeBuffersWithoutDepthBuffer);
+ RegisterTest("TestResizeBuffersWithDepthBuffer",
+ TestResizeBuffersWithDepthBuffer);
RegisterTest("Test_glTerminatePPAPI", Test_glTerminatePPAPI);
}

Powered by Google App Engine
This is Rietveld 408576698