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

Side by Side Diff: src/gpu/GrGpu.h

Issue 701573002: Workaround for PowerVR clear issue. (Closed) Base URL: https://skia.googlesource.com/skia.git@no_null
Patch Set: Add missing spaces Created 6 years, 1 month 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
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 GrGpu_DEFINED 8 #ifndef GrGpu_DEFINED
9 #define GrGpu_DEFINED 9 #define GrGpu_DEFINED
10 10
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 * @param buffer memory to read pixels from 259 * @param buffer memory to read pixels from
260 * @param rowBytes number of bytes between consecutive rows. Zero 260 * @param rowBytes number of bytes between consecutive rows. Zero
261 * means rows are tightly packed. 261 * means rows are tightly packed.
262 */ 262 */
263 bool writeTexturePixels(GrTexture* texture, 263 bool writeTexturePixels(GrTexture* texture,
264 int left, int top, int width, int height, 264 int left, int top, int width, int height,
265 GrPixelConfig config, const void* buffer, 265 GrPixelConfig config, const void* buffer,
266 size_t rowBytes); 266 size_t rowBytes);
267 267
268 // GrDrawTarget overrides 268 // GrDrawTarget overrides
269 virtual void clear(const SkIRect* rect, GrColor color, bool canIgnoreRect,
270 GrRenderTarget* renderTarget) SK_OVERRIDE;
271
272 virtual void clearStencilClip(const SkIRect& rect, 269 virtual void clearStencilClip(const SkIRect& rect,
273 bool insideClip, 270 bool insideClip,
274 GrRenderTarget* renderTarget = NULL) SK_OVERRI DE; 271 GrRenderTarget* renderTarget = NULL) SK_OVERRI DE;
275 272
276 // After the client interacts directly with the 3D context state the GrGpu 273 // After the client interacts directly with the 3D context state the GrGpu
277 // must resync its internal state and assumptions about 3D context state. 274 // must resync its internal state and assumptions about 3D context state.
278 // Each time this occurs the GrGpu bumps a timestamp. 275 // Each time this occurs the GrGpu bumps a timestamp.
279 // state of the 3D context 276 // state of the 3D context
280 // At 10 resets / frame and 60fps a 64bit timestamp will overflow in about 277 // At 10 resets / frame and 60fps a 64bit timestamp will overflow in about
281 // a billion years. 278 // a billion years.
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 SkAutoTDelete<GrPathRendering> fPathRendering; 364 SkAutoTDelete<GrPathRendering> fPathRendering;
368 365
369 private: 366 private:
370 // GrDrawTarget overrides 367 // GrDrawTarget overrides
371 virtual bool onReserveVertexSpace(size_t vertexSize, int vertexCount, void** vertices) SK_OVERRIDE; 368 virtual bool onReserveVertexSpace(size_t vertexSize, int vertexCount, void** vertices) SK_OVERRIDE;
372 virtual bool onReserveIndexSpace(int indexCount, void** indices) SK_OVERRIDE ; 369 virtual bool onReserveIndexSpace(int indexCount, void** indices) SK_OVERRIDE ;
373 virtual void releaseReservedVertexSpace() SK_OVERRIDE; 370 virtual void releaseReservedVertexSpace() SK_OVERRIDE;
374 virtual void releaseReservedIndexSpace() SK_OVERRIDE; 371 virtual void releaseReservedIndexSpace() SK_OVERRIDE;
375 virtual void geometrySourceWillPush() SK_OVERRIDE; 372 virtual void geometrySourceWillPush() SK_OVERRIDE;
376 virtual void geometrySourceWillPop(const GeometrySrcState& restoredState) SK _OVERRIDE; 373 virtual void geometrySourceWillPop(const GeometrySrcState& restoredState) SK _OVERRIDE;
377 374 virtual void onClear(const SkIRect* rect, GrColor color, bool canIgnoreRect,
375 GrRenderTarget* renderTarget) SK_OVERRIDE;
378 376
379 // called when the 3D context state is unknown. Subclass should emit any 377 // called when the 3D context state is unknown. Subclass should emit any
380 // assumed 3D context state and dirty any state cache. 378 // assumed 3D context state and dirty any state cache.
381 virtual void onResetContext(uint32_t resetBits) = 0; 379 virtual void onResetContext(uint32_t resetBits) = 0;
382 380
383 // overridden by backend-specific derived class to create objects. 381 // overridden by backend-specific derived class to create objects.
384 virtual GrTexture* onCreateTexture(const GrSurfaceDesc& desc, 382 virtual GrTexture* onCreateTexture(const GrSurfaceDesc& desc,
385 const void* srcData, 383 const void* srcData,
386 size_t rowBytes) = 0; 384 size_t rowBytes) = 0;
387 virtual GrTexture* onCreateCompressedTexture(const GrSurfaceDesc& desc, 385 virtual GrTexture* onCreateCompressedTexture(const GrSurfaceDesc& desc,
388 const void* srcData) = 0; 386 const void* srcData) = 0;
389 virtual GrTexture* onWrapBackendTexture(const GrBackendTextureDesc&) = 0; 387 virtual GrTexture* onWrapBackendTexture(const GrBackendTextureDesc&) = 0;
390 virtual GrRenderTarget* onWrapBackendRenderTarget(const GrBackendRenderTarge tDesc&) = 0; 388 virtual GrRenderTarget* onWrapBackendRenderTarget(const GrBackendRenderTarge tDesc&) = 0;
391 virtual GrVertexBuffer* onCreateVertexBuffer(size_t size, bool dynamic) = 0; 389 virtual GrVertexBuffer* onCreateVertexBuffer(size_t size, bool dynamic) = 0;
392 virtual GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic) = 0; 390 virtual GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic) = 0;
393 391
394 // overridden by backend-specific derived class to perform the clear and 392 // overridden by backend-specific derived class to perform the clear.
395 // clearRect. NULL rect means clear whole target. If canIgnoreRect is 393 virtual void onGpuClear(GrRenderTarget*, const SkIRect* rect, GrColor color,
396 // true, it is okay to perform a full clear instead of a partial clear 394 bool canIgnoreRect) = 0;
397 virtual void onClear(GrRenderTarget*, const SkIRect* rect, GrColor color,
398 bool canIgnoreRect) = 0;
399 395
400 396
401 // Overridden by backend specific classes to perform a clear of the stencil clip bits. This is 397 // Overridden by backend specific classes to perform a clear of the stencil clip bits. This is
402 // ONLY used by the the clip target 398 // ONLY used by the the clip target
403 virtual void onClearStencilClip(GrRenderTarget*, 399 virtual void onClearStencilClip(GrRenderTarget*,
404 const SkIRect& rect, 400 const SkIRect& rect,
405 bool insideClip) = 0; 401 bool insideClip) = 0;
406 402
407 // overridden by backend-specific derived class to perform the draw call. 403 // overridden by backend-specific derived class to perform the draw call.
408 virtual void onGpuDraw(const DrawInfo&) = 0; 404 virtual void onGpuDraw(const DrawInfo&) = 0;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 // counts number of uses of vertex/index pool in the geometry stack 478 // counts number of uses of vertex/index pool in the geometry stack
483 int fVertexP oolUseCnt; 479 int fVertexP oolUseCnt;
484 int fIndexPo olUseCnt; 480 int fIndexPo olUseCnt;
485 // these are mutable so they can be created on-demand 481 // these are mutable so they can be created on-demand
486 mutable GrIndexBuffer* fQuadInd exBuffer; 482 mutable GrIndexBuffer* fQuadInd exBuffer;
487 483
488 typedef GrClipTarget INHERITED; 484 typedef GrClipTarget INHERITED;
489 }; 485 };
490 486
491 #endif 487 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrDrawTargetCaps.h ('k') | src/gpu/GrGpu.cpp » ('j') | src/gpu/gl/GrGLUtil.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698