daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 1 | // |
| 2 | // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. |
| 3 | // Use of this source code is governed by a BSD-style license that can be |
| 4 | // found in the LICENSE file. |
| 5 | // |
| 6 | |
Jamie Madill | 135570a | 2014-09-30 16:33:51 -0400 | [diff] [blame] | 7 | // Image.h: Implements the rx::Image class, an abstract base class for the |
daniel@transgaming.com | 4ba2406 | 2012-12-20 20:54:24 +0000 | [diff] [blame] | 8 | // renderer-specific classes which will define the interface to the underlying |
| 9 | // surfaces or resources. |
| 10 | |
daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 11 | #include "libGLESv2/renderer/Image.h" |
Jamie Madill | 5a0c45e | 2014-10-02 11:10:36 -0400 | [diff] [blame] | 12 | #include "libGLESv2/Framebuffer.h" |
| 13 | #include "libGLESv2/main.h" |
daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 14 | |
daniel@transgaming.com | 31b13e1 | 2012-11-28 19:34:30 +0000 | [diff] [blame] | 15 | namespace rx |
daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 16 | { |
daniel@transgaming.com | 0ad830b | 2012-10-31 19:52:12 +0000 | [diff] [blame] | 17 | |
daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 18 | Image::Image() |
| 19 | { |
Jamie Madill | 135570a | 2014-09-30 16:33:51 -0400 | [diff] [blame] | 20 | mWidth = 0; |
daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 21 | mHeight = 0; |
shannon.woods%transgaming.com@gtempaccount.com | 4760c56 | 2013-04-13 03:42:30 +0000 | [diff] [blame] | 22 | mDepth = 0; |
daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 23 | mInternalFormat = GL_NONE; |
daniel@transgaming.com | 20d3666 | 2012-10-31 19:51:43 +0000 | [diff] [blame] | 24 | mActualFormat = GL_NONE; |
shannon.woods%transgaming.com@gtempaccount.com | 56074f3 | 2013-04-13 03:45:30 +0000 | [diff] [blame] | 25 | mTarget = GL_NONE; |
shannonwoods@chromium.org | 803be0a | 2013-05-30 00:08:59 +0000 | [diff] [blame] | 26 | mRenderable = false; |
Geoff Lang | 34256ed | 2013-09-30 15:15:52 -0400 | [diff] [blame] | 27 | mDirty = false; |
daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 28 | } |
| 29 | |
Geoff Lang | ef7b016 | 2014-09-04 13:29:23 -0400 | [diff] [blame] | 30 | gl::Error Image::copy(GLint xoffset, GLint yoffset, GLint zoffset, const gl::Rectangle &area, gl::Framebuffer *source) |
Jamie Madill | 5a0c45e | 2014-10-02 11:10:36 -0400 | [diff] [blame] | 31 | { |
| 32 | gl::FramebufferAttachment *colorbuffer = source->getReadColorbuffer(); |
Geoff Lang | ef7b016 | 2014-09-04 13:29:23 -0400 | [diff] [blame] | 33 | ASSERT(colorbuffer); |
Jamie Madill | 5a0c45e | 2014-10-02 11:10:36 -0400 | [diff] [blame] | 34 | |
Geoff Lang | 64f23f6 | 2014-09-10 14:40:12 -0400 | [diff] [blame^] | 35 | RenderTarget *renderTarget = NULL; |
| 36 | gl::Error error = GetAttachmentRenderTarget(colorbuffer, &renderTarget); |
| 37 | if (error.isError()) |
| 38 | { |
| 39 | return error; |
| 40 | } |
| 41 | |
Jamie Madill | 5a0c45e | 2014-10-02 11:10:36 -0400 | [diff] [blame] | 42 | ASSERT(renderTarget); |
Geoff Lang | ef7b016 | 2014-09-04 13:29:23 -0400 | [diff] [blame] | 43 | return copy(xoffset, yoffset, zoffset, area, renderTarget); |
Jamie Madill | 5a0c45e | 2014-10-02 11:10:36 -0400 | [diff] [blame] | 44 | } |
| 45 | |
daniel@transgaming.com | b9d7e6f | 2012-10-31 19:08:32 +0000 | [diff] [blame] | 46 | } |