| Index: ppapi/examples/gles2/gles2.cc
|
| diff --git a/ppapi/examples/gles2/gles2.cc b/ppapi/examples/gles2/gles2.cc
|
| index f4030005af3ebd9a93adb45aa044a198e97399c0..220a6f4493a3039560085ca020c867b6485ac4e7 100644
|
| --- a/ppapi/examples/gles2/gles2.cc
|
| +++ b/ppapi/examples/gles2/gles2.cc
|
| @@ -14,8 +14,6 @@
|
| #include "ppapi/c/dev/ppb_console_dev.h"
|
| #include "ppapi/c/pp_errors.h"
|
| #include "ppapi/c/ppb_opengles2.h"
|
| -#include "ppapi/cpp/dev/context_3d_dev.h"
|
| -#include "ppapi/cpp/dev/surface_3d_dev.h"
|
| #include "ppapi/cpp/dev/video_decoder_client_dev.h"
|
| #include "ppapi/cpp/dev/video_decoder_dev.h"
|
| #include "ppapi/cpp/graphics_3d.h"
|
| @@ -54,7 +52,7 @@ class GLES2DemoInstance : public pp::Instance,
|
| // pp::Graphics3DClient implementation.
|
| virtual void Graphics3DContextLost() {
|
| // TODO(vrk/fischman): Properly reset after a lost graphics context. In
|
| - // particular need to delete context_ & surface_ and re-create textures.
|
| + // particular need to delete context_ and re-create textures.
|
| // Probably have to recreate the decoder from scratch, because old textures
|
| // can still be outstanding in the decoder!
|
| assert(!"Unexpectedly lost graphics context");
|
| @@ -162,8 +160,7 @@ class GLES2DemoInstance : public pp::Instance,
|
| const struct PPB_OpenGLES2* gles2_if_;
|
|
|
| // Owned data.
|
| - pp::Context3D_Dev* context_;
|
| - pp::Surface3D_Dev* surface_;
|
| + pp::Graphics3D* context_;
|
| typedef std::map<int, DecoderClient*> Decoders;
|
| Decoders video_decoders_;
|
| };
|
| @@ -199,8 +196,7 @@ GLES2DemoInstance::GLES2DemoInstance(PP_Instance instance, pp::Module* module)
|
| first_frame_delivered_ticks_(-1),
|
| swap_ticks_(0),
|
| callback_factory_(this),
|
| - context_(NULL),
|
| - surface_(NULL) {
|
| + context_(NULL) {
|
| assert((console_if_ = static_cast<const struct PPB_Console_Dev*>(
|
| module->GetBrowserInterface(PPB_CONSOLE_DEV_INTERFACE))));
|
| assert((core_if_ = static_cast<const struct PPB_Core*>(
|
| @@ -215,7 +211,6 @@ GLES2DemoInstance::~GLES2DemoInstance() {
|
| delete it->second;
|
| }
|
| video_decoders_.clear();
|
| - delete surface_;
|
| delete context_;
|
| }
|
|
|
| @@ -387,6 +382,7 @@ void GLES2DemoInstance::PictureReady(PP_Resource decoder,
|
| x = plugin_size_.width() / kNumDecoders;
|
| y = plugin_size_.height() / kNumDecoders;
|
| }
|
| +
|
| gles2_if_->Viewport(context_->pp_resource(), x, y,
|
| plugin_size_.width() / kNumDecoders,
|
| plugin_size_.height() / kNumDecoders);
|
| @@ -398,7 +394,7 @@ void GLES2DemoInstance::PictureReady(PP_Resource decoder,
|
| callback_factory_.NewCallback(
|
| &GLES2DemoInstance::PaintFinished, decoder, buffer.id);
|
| last_swap_request_ticks_ = core_if_->GetTimeTicks();
|
| - assert(surface_->SwapBuffers(cb) == PP_OK_COMPLETIONPENDING);
|
| + assert(context_->SwapBuffers(cb) == PP_OK_COMPLETIONPENDING);
|
| }
|
|
|
| void GLES2DemoInstance::EndOfStream(PP_Resource decoder) {
|
| @@ -426,24 +422,28 @@ void GLES2DemoInstance::InitGL() {
|
| assert(plugin_size_.width() && plugin_size_.height());
|
| is_painting_ = false;
|
|
|
| - assert(!context_ && !surface_);
|
| - context_ = new pp::Context3D_Dev(*this, 0, pp::Context3D_Dev(), NULL);
|
| - assert(!context_->is_null());
|
| -
|
| - int32_t surface_attributes[] = {
|
| + assert(!context_);
|
| + int32_t context_attributes[] = {
|
| + PP_GRAPHICS3DATTRIB_ALPHA_SIZE, 8,
|
| + PP_GRAPHICS3DATTRIB_BLUE_SIZE, 8,
|
| + PP_GRAPHICS3DATTRIB_GREEN_SIZE, 8,
|
| + PP_GRAPHICS3DATTRIB_RED_SIZE, 8,
|
| + PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 0,
|
| + PP_GRAPHICS3DATTRIB_STENCIL_SIZE, 0,
|
| + PP_GRAPHICS3DATTRIB_SAMPLES, 0,
|
| + PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 0,
|
| PP_GRAPHICS3DATTRIB_WIDTH, plugin_size_.width(),
|
| PP_GRAPHICS3DATTRIB_HEIGHT, plugin_size_.height(),
|
| - PP_GRAPHICS3DATTRIB_NONE
|
| + PP_GRAPHICS3DATTRIB_NONE,
|
| };
|
| - surface_ = new pp::Surface3D_Dev(*this, 0, surface_attributes);
|
| - assert(!surface_->is_null());
|
| -
|
| - assert(!context_->BindSurfaces(*surface_, *surface_));
|
| + context_ = new pp::Graphics3D(this, context_attributes);
|
| + assert(!context_->is_null());
|
| + assert(BindGraphics(*context_));
|
|
|
| // Clear color bit.
|
| + gles2_if_->ClearColor(context_->pp_resource(), 1, 0, 0, 1);
|
| gles2_if_->Clear(context_->pp_resource(), GL_COLOR_BUFFER_BIT);
|
|
|
| - assert(BindGraphics(*surface_));
|
| assertNoGLError();
|
|
|
| CreateGLObjects();
|
| @@ -451,6 +451,7 @@ void GLES2DemoInstance::InitGL() {
|
|
|
| void GLES2DemoInstance::PaintFinished(int32_t result, PP_Resource decoder,
|
| int picture_buffer_id) {
|
| + assert(result == PP_OK);
|
| swap_ticks_ += core_if_->GetTimeTicks() - last_swap_request_ticks_;
|
| is_painting_ = false;
|
| ++num_frames_rendered_;
|
| @@ -479,8 +480,7 @@ GLuint GLES2DemoInstance::CreateTexture(int32_t width, int32_t height) {
|
| assertNoGLError();
|
| // Assign parameters.
|
| gles2_if_->ActiveTexture(context_->pp_resource(), GL_TEXTURE0);
|
| - gles2_if_->BindTexture(
|
| - context_->pp_resource(), GL_TEXTURE_2D, texture_id);
|
| + gles2_if_->BindTexture(context_->pp_resource(), GL_TEXTURE_2D, texture_id);
|
| gles2_if_->TexParameteri(
|
| context_->pp_resource(), GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
|
| GL_NEAREST);
|
| @@ -494,7 +494,6 @@ GLuint GLES2DemoInstance::CreateTexture(int32_t width, int32_t height) {
|
| context_->pp_resource(), GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,
|
| GL_CLAMP_TO_EDGE);
|
|
|
| - // Allocate texture.
|
| gles2_if_->TexImage2D(
|
| context_->pp_resource(), GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0,
|
| GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
| @@ -537,7 +536,7 @@ void GLES2DemoInstance::CreateGLObjects() {
|
| gles2_if_->DeleteProgram(context_->pp_resource(), program);
|
| gles2_if_->Uniform1i(
|
| context_->pp_resource(),
|
| - gles2_if_->GetAttribLocation(
|
| + gles2_if_->GetUniformLocation(
|
| context_->pp_resource(), program, "s_texture"), 0);
|
| assertNoGLError();
|
|
|
|
|