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

Side by Side Diff: Source/platform/graphics/ImageBuffer.cpp

Issue 106503003: Changed GL enums from GraphicsContext3D to standard versions (Take 2) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2008, Google Inc. All rights reserved. 2 * Copyright (c) 2008, Google Inc. All rights reserved.
3 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 3 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are 7 * modification, are permitted provided that the following conditions are
8 * met: 8 * met:
9 * 9 *
10 * * Redistributions of source code must retain the above copyright 10 * * Redistributions of source code must retain the above copyright
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 Extensions3D* extensions = context.extensions(); 137 Extensions3D* extensions = context.extensions();
138 if (!extensions->supports("GL_CHROMIUM_copy_texture") || !extensions->suppor ts("GL_CHROMIUM_flipy") 138 if (!extensions->supports("GL_CHROMIUM_copy_texture") || !extensions->suppor ts("GL_CHROMIUM_flipy")
139 || !extensions->canUseCopyTextureCHROMIUM(internalFormat, destType, leve l)) 139 || !extensions->canUseCopyTextureCHROMIUM(internalFormat, destType, leve l))
140 return false; 140 return false;
141 141
142 // The canvas is stored in a premultiplied format, so unpremultiply if neces sary. 142 // The canvas is stored in a premultiplied format, so unpremultiply if neces sary.
143 context.pixelStorei(Extensions3D::UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, !prem ultiplyAlpha); 143 context.pixelStorei(Extensions3D::UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, !prem ultiplyAlpha);
144 144
145 // The canvas is stored in an inverted position, so the flip semantics are r eversed. 145 // The canvas is stored in an inverted position, so the flip semantics are r eversed.
146 context.pixelStorei(Extensions3D::UNPACK_FLIP_Y_CHROMIUM, !flipY); 146 context.pixelStorei(Extensions3D::UNPACK_FLIP_Y_CHROMIUM, !flipY);
147 extensions->copyTextureCHROMIUM(GraphicsContext3D::TEXTURE_2D, getBackingTex ture(), texture, level, internalFormat, destType); 147 extensions->copyTextureCHROMIUM(GL_TEXTURE_2D, getBackingTexture(), texture, level, internalFormat, destType);
148 148
149 context.pixelStorei(Extensions3D::UNPACK_FLIP_Y_CHROMIUM, false); 149 context.pixelStorei(Extensions3D::UNPACK_FLIP_Y_CHROMIUM, false);
150 context.pixelStorei(Extensions3D::UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, false ); 150 context.pixelStorei(Extensions3D::UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, false );
151 context.flush(); 151 context.flush();
152 return true; 152 return true;
153 } 153 }
154 154
155 static bool drawNeedsCopy(GraphicsContext* src, GraphicsContext* dst) 155 static bool drawNeedsCopy(GraphicsContext* src, GraphicsContext* dst)
156 { 156 {
157 ASSERT(dst); 157 ASSERT(dst);
158 return (src == dst); 158 return (src == dst);
159 } 159 }
160 160
161 Platform3DObject ImageBuffer::getBackingTexture() 161 Platform3DObject ImageBuffer::getBackingTexture()
162 { 162 {
163 return m_surface->getBackingTexture(); 163 return m_surface->getBackingTexture();
164 } 164 }
165 165
166 bool ImageBuffer::copyRenderingResultsFromDrawingBuffer(DrawingBuffer* drawingBu ffer) 166 bool ImageBuffer::copyRenderingResultsFromDrawingBuffer(DrawingBuffer* drawingBu ffer)
167 { 167 {
168 if (!drawingBuffer) 168 if (!drawingBuffer)
169 return false; 169 return false;
170 RefPtr<GraphicsContext3D> context3D = SharedGraphicsContext3D::get(); 170 RefPtr<GraphicsContext3D> context3D = SharedGraphicsContext3D::get();
171 Platform3DObject tex = m_surface->getBackingTexture(); 171 Platform3DObject tex = m_surface->getBackingTexture();
172 if (!context3D || !tex) 172 if (!context3D || !tex)
173 return false; 173 return false;
174 174
175 return drawingBuffer->copyToPlatformTexture(*(context3D.get()), tex, Graphic sContext3D::RGBA, 175 return drawingBuffer->copyToPlatformTexture(*(context3D.get()), tex, GL_RGBA ,
176 GraphicsContext3D::UNSIGNED_BYTE, 0, true, false); 176 GL_UNSIGNED_BYTE, 0, true, false);
177 } 177 }
178 178
179 void ImageBuffer::draw(GraphicsContext* context, const FloatRect& destRect, cons t FloatRect& srcRect, 179 void ImageBuffer::draw(GraphicsContext* context, const FloatRect& destRect, cons t FloatRect& srcRect,
180 CompositeOperator op, blink::WebBlendMode blendMode, bool useLowQualityScale ) 180 CompositeOperator op, blink::WebBlendMode blendMode, bool useLowQualityScale )
181 { 181 {
182 if (!isValid()) 182 if (!isValid())
183 return; 183 return;
184 184
185 const SkBitmap& bitmap = m_surface->bitmap(); 185 const SkBitmap& bitmap = m_surface->bitmap();
186 RefPtr<Image> image = BitmapImage::create(NativeImageSkia::create(drawNeedsC opy(m_context.get(), context) ? deepSkBitmapCopy(bitmap) : bitmap)); 186 RefPtr<Image> image = BitmapImage::create(NativeImageSkia::create(drawNeedsC opy(m_context.get(), context) ? deepSkBitmapCopy(bitmap) : bitmap));
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 if (!encodeImage(imageData, mimeType, quality, &encodedImage)) 431 if (!encodeImage(imageData, mimeType, quality, &encodedImage))
432 return "data:,"; 432 return "data:,";
433 433
434 Vector<char> base64Data; 434 Vector<char> base64Data;
435 base64Encode(encodedImage, base64Data); 435 base64Encode(encodedImage, base64Data);
436 436
437 return "data:" + mimeType + ";base64," + base64Data; 437 return "data:" + mimeType + ";base64," + base64Data;
438 } 438 }
439 439
440 } // namespace WebCore 440 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/platform/graphics/GraphicsTypes3D.h ('k') | Source/platform/graphics/filters/custom/CustomFilterCompiledProgram.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698