| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2009, Google Inc. | 2 * Copyright 2009, Google Inc. |
| 3 * All rights reserved. | 3 * All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 Texture *texture) | 47 Texture *texture) |
| 48 : RenderSurface(service_locator, width, height, texture), | 48 : RenderSurface(service_locator, width, height, texture), |
| 49 cube_face_(cube_face), | 49 cube_face_(cube_face), |
| 50 mip_level_(mip_level) { | 50 mip_level_(mip_level) { |
| 51 DCHECK(texture); | 51 DCHECK(texture); |
| 52 } | 52 } |
| 53 | 53 |
| 54 RenderSurfaceGLES2::~RenderSurfaceGLES2() { | 54 RenderSurfaceGLES2::~RenderSurfaceGLES2() { |
| 55 } | 55 } |
| 56 | 56 |
| 57 Bitmap::Ref RenderSurfaceGLES2::PlatformSpecificGetBitmap() const { | 57 bool RenderSurfaceGLES2::PlatformSpecificGetIntoBitmap( |
| 58 Bitmap::Ref bitmap) const { |
| 58 Renderer* renderer = service_locator()->GetService<Renderer>(); | 59 Renderer* renderer = service_locator()->GetService<Renderer>(); |
| 59 DCHECK(renderer); | 60 DCHECK(renderer); |
| 60 | 61 DCHECK(bitmap->width() == static_cast<unsigned int>(clip_width()) && |
| 61 Bitmap::Ref bitmap = Bitmap::Ref(new Bitmap(service_locator())); | 62 bitmap->height() == static_cast<unsigned int>(clip_height()) && |
| 62 bitmap->Allocate( | 63 bitmap->num_mipmaps() == 1 && |
| 63 Texture::ARGB8, clip_width(), clip_height(), 1, Bitmap::IMAGE); | 64 bitmap->format() == Texture::ARGB8); |
| 64 | 65 |
| 65 const RenderSurface* old_render_surface; | 66 const RenderSurface* old_render_surface; |
| 66 const RenderDepthStencilSurface* old_depth_surface; | 67 const RenderDepthStencilSurface* old_depth_surface; |
| 67 bool old_is_back_buffer; | 68 bool old_is_back_buffer; |
| 68 | 69 |
| 69 renderer->GetRenderSurfaces(&old_render_surface, &old_depth_surface, | 70 renderer->GetRenderSurfaces(&old_render_surface, &old_depth_surface, |
| 70 &old_is_back_buffer); | 71 &old_is_back_buffer); |
| 71 renderer->SetRenderSurfaces(this, NULL, false); | 72 renderer->SetRenderSurfaces(this, NULL, false); |
| 72 | 73 |
| 73 ::glReadPixels(0, 0, clip_width(), clip_height(), GL_BGRA, GL_UNSIGNED_BYTE, | 74 ::glReadPixels(0, 0, clip_width(), clip_height(), GL_BGRA, GL_UNSIGNED_BYTE, |
| 74 bitmap->image_data()); | 75 bitmap->image_data()); |
| 75 | 76 |
| 76 renderer->SetRenderSurfaces(old_render_surface, old_depth_surface, | 77 renderer->SetRenderSurfaces(old_render_surface, old_depth_surface, |
| 77 old_is_back_buffer); | 78 old_is_back_buffer); |
| 78 | 79 |
| 79 return bitmap; | 80 return true; |
| 80 } | 81 } |
| 81 | 82 |
| 82 RenderDepthStencilSurfaceGLES2::RenderDepthStencilSurfaceGLES2( | 83 RenderDepthStencilSurfaceGLES2::RenderDepthStencilSurfaceGLES2( |
| 83 ServiceLocator *service_locator, | 84 ServiceLocator *service_locator, |
| 84 int width, | 85 int width, |
| 85 int height) | 86 int height) |
| 86 : RenderDepthStencilSurface(service_locator, width, height) { | 87 : RenderDepthStencilSurface(service_locator, width, height) { |
| 87 | 88 |
| 88 #ifndef DISABLE_FBO | 89 #ifndef DISABLE_FBO |
| 89 #if defined(GLES2_BACKEND_DESKTOP_GL) | 90 #if defined(GLES2_BACKEND_DESKTOP_GL) |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 if (GLEW_EXT_packed_depth_stencil) { | 134 if (GLEW_EXT_packed_depth_stencil) { |
| 134 glDeleteRenderbuffersEXT(1, render_buffers_); | 135 glDeleteRenderbuffersEXT(1, render_buffers_); |
| 135 return; | 136 return; |
| 136 } | 137 } |
| 137 #endif | 138 #endif |
| 138 glDeleteRenderbuffersEXT(2, render_buffers_); | 139 glDeleteRenderbuffersEXT(2, render_buffers_); |
| 139 #endif | 140 #endif |
| 140 } | 141 } |
| 141 | 142 |
| 142 } // end namespace o3d | 143 } // end namespace o3d |
| OLD | NEW |