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

Side by Side Diff: src/gpu/gl/GrGLGpu.h

Issue 1403123002: Store texture target on GrGLTexture. This is in preparation for using texture targets other than 2D. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: working Created 5 years, 2 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 unified diff | Download patch
« no previous file with comments | « no previous file | src/gpu/gl/GrGLGpu.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrGLGpu_DEFINED 8 #ifndef GrGLGpu_DEFINED
9 #define GrGLGpu_DEFINED 9 #define GrGLGpu_DEFINED
10 10
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 void flushStencil(const GrStencilSettings&); 266 void flushStencil(const GrStencilSettings&);
267 void flushHWAAState(GrRenderTarget* rt, bool useHWAA, bool stencilEnabled); 267 void flushHWAAState(GrRenderTarget* rt, bool useHWAA, bool stencilEnabled);
268 268
269 bool configToGLFormats(GrPixelConfig config, 269 bool configToGLFormats(GrPixelConfig config,
270 bool getSizedInternal, 270 bool getSizedInternal,
271 GrGLenum* internalFormat, 271 GrGLenum* internalFormat,
272 GrGLenum* externalFormat, 272 GrGLenum* externalFormat,
273 GrGLenum* externalType) const; 273 GrGLenum* externalType) const;
274 // helper for onCreateTexture and writeTexturePixels 274 // helper for onCreateTexture and writeTexturePixels
275 bool uploadTexData(const GrSurfaceDesc& desc, 275 bool uploadTexData(const GrSurfaceDesc& desc,
276 GrGLenum target,
276 bool isNewTexture, 277 bool isNewTexture,
277 int left, int top, int width, int height, 278 int left, int top, int width, int height,
278 GrPixelConfig dataConfig, 279 GrPixelConfig dataConfig,
279 const void* data, 280 const void* data,
280 size_t rowBytes); 281 size_t rowBytes);
281 282
282 // helper for onCreateCompressedTexture. If width and height are 283 // helper for onCreateCompressedTexture. If width and height are
283 // set to -1, then this function will use desc.fWidth and desc.fHeight 284 // set to -1, then this function will use desc.fWidth and desc.fHeight
284 // for the size of the data. The isNewTexture flag should be set to true 285 // for the size of the data. The isNewTexture flag should be set to true
285 // whenever a new texture needs to be created. Otherwise, we assume that 286 // whenever a new texture needs to be created. Otherwise, we assume that
286 // the texture is already in GPU memory and that it's going to be updated 287 // the texture is already in GPU memory and that it's going to be updated
287 // with new data. 288 // with new data.
288 bool uploadCompressedTexData(const GrSurfaceDesc& desc, 289 bool uploadCompressedTexData(const GrSurfaceDesc& desc,
290 GrGLenum target,
289 const void* data, 291 const void* data,
290 bool isNewTexture = true, 292 bool isNewTexture = true,
291 int left = 0, int top = 0, 293 int left = 0, int top = 0,
292 int width = -1, int height = -1); 294 int width = -1, int height = -1);
293 295
294 bool createRenderTargetObjects(const GrSurfaceDesc&, GrGpuResource::LifeCycl e lifeCycle, 296 bool createRenderTargetObjects(const GrSurfaceDesc&, GrGpuResource::LifeCycl e lifeCycle,
295 GrGLuint texID, GrGLRenderTarget::IDDesc*); 297 GrGLenum textureTarget, GrGLuint texID,
298 GrGLRenderTarget::IDDesc*);
296 299
297 enum TempFBOTarget { 300 enum TempFBOTarget {
298 kSrc_TempFBOTarget, 301 kSrc_TempFBOTarget,
299 kDst_TempFBOTarget 302 kDst_TempFBOTarget
300 }; 303 };
301 304
302 GrGLuint bindSurfaceAsFBO(GrSurface* surface, GrGLenum fboTarget, GrGLIRect* viewport, 305 // Binds a surface as a FBO for a copy operation. If the surface already own s an FBO ID then
306 // that ID is bound. If not the surface is temporarily bound to a FBO and th at FBO is bound.
307 // This must be paired with a call to unbindSurfaceFBOForCopy().
308 void bindSurfaceFBOForCopy(GrSurface* surface, GrGLenum fboTarget, GrGLIRect * viewport,
303 TempFBOTarget tempFBOTarget); 309 TempFBOTarget tempFBOTarget);
304 310
305 void unbindTextureFromFBO(GrGLenum fboTarget); 311 // Must be called if bindSurfaceFBOForCopy was used to bind a surface for co pying.
312 void unbindTextureFBOForCopy(GrGLenum fboTarget, GrSurface* surface);
306 313
307 SkAutoTUnref<GrGLContext> fGLContext; 314 SkAutoTUnref<GrGLContext> fGLContext;
308 315
309 void createCopyProgram(); 316 void createCopyProgram();
310 317
311 // GL program-related state 318 // GL program-related state
312 ProgramCache* fProgramCache; 319 ProgramCache* fProgramCache;
313 320
314 /////////////////////////////////////////////////////////////////////////// 321 ///////////////////////////////////////////////////////////////////////////
315 ///@name Caching of GL State 322 ///@name Caching of GL State
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 507
501 // Mapping of pixel configs to known supported stencil formats to be used 508 // Mapping of pixel configs to known supported stencil formats to be used
502 // when adding a stencil buffer to a framebuffer. 509 // when adding a stencil buffer to a framebuffer.
503 int fPixelConfigToStencilIndex[kGrPixelConfigCnt]; 510 int fPixelConfigToStencilIndex[kGrPixelConfigCnt];
504 511
505 typedef GrGpu INHERITED; 512 typedef GrGpu INHERITED;
506 friend class GrGLPathRendering; // For accessing setTextureUnit. 513 friend class GrGLPathRendering; // For accessing setTextureUnit.
507 }; 514 };
508 515
509 #endif 516 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/gl/GrGLGpu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698