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

Side by Side Diff: include/gpu/GrContext.h

Issue 15821008: Make GrContext track the current matrix, render target, and clip directly rather than using GrDrawS… (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: put back wideopen check Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | include/gpu/GrEffectStage.h » ('j') | src/gpu/GrContext.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2010 Google Inc. 3 * Copyright 2010 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef GrContext_DEFINED 10 #ifndef GrContext_DEFINED
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 /** 250 /**
251 * Return the max width or height of a texture supported by the current GPU . 251 * Return the max width or height of a texture supported by the current GPU .
252 */ 252 */
253 int getMaxTextureSize() const; 253 int getMaxTextureSize() const;
254 254
255 /////////////////////////////////////////////////////////////////////////// 255 ///////////////////////////////////////////////////////////////////////////
256 // Render targets 256 // Render targets
257 257
258 /** 258 /**
259 * Sets the render target. 259 * Sets the render target.
260 * @param target the render target to set. (should not be NULL.) 260 * @param target the render target to set.
261 */ 261 */
262 void setRenderTarget(GrRenderTarget* target); 262 void setRenderTarget(GrRenderTarget* target) {
263 fRenderTarget.reset(SkSafeRef(target));
264 }
263 265
264 /** 266 /**
265 * Gets the current render target. 267 * Gets the current render target.
266 * @return the currently bound render target. Should never be NULL. 268 * @return the currently bound render target.
267 */ 269 */
268 const GrRenderTarget* getRenderTarget() const; 270 const GrRenderTarget* getRenderTarget() const { return fRenderTarget.get(); }
269 GrRenderTarget* getRenderTarget(); 271 GrRenderTarget* getRenderTarget() { return fRenderTarget.get(); }
270 272
271 GrAARectRenderer* getAARectRenderer() { return fAARectRenderer; } 273 GrAARectRenderer* getAARectRenderer() { return fAARectRenderer; }
272 274
273 /** 275 /**
274 * Can the provided configuration act as a color render target? 276 * Can the provided configuration act as a color render target?
275 */ 277 */
276 bool isConfigRenderable(GrPixelConfig config) const; 278 bool isConfigRenderable(GrPixelConfig config) const;
277 279
278 /** 280 /**
279 * Return the max width or height of a render target supported by the 281 * Return the max width or height of a render target supported by the
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 */ 316 */
315 GrRenderTarget* wrapBackendRenderTarget(const GrBackendRenderTargetDesc& de sc); 317 GrRenderTarget* wrapBackendRenderTarget(const GrBackendRenderTargetDesc& de sc);
316 318
317 /////////////////////////////////////////////////////////////////////////// 319 ///////////////////////////////////////////////////////////////////////////
318 // Matrix state 320 // Matrix state
319 321
320 /** 322 /**
321 * Gets the current transformation matrix. 323 * Gets the current transformation matrix.
322 * @return the current matrix. 324 * @return the current matrix.
323 */ 325 */
324 const SkMatrix& getMatrix() const; 326 const SkMatrix& getMatrix() const { return fViewMatrix; }
325 327
326 /** 328 /**
327 * Sets the transformation matrix. 329 * Sets the transformation matrix.
328 * @param m the matrix to set. 330 * @param m the matrix to set.
329 */ 331 */
330 void setMatrix(const SkMatrix& m); 332 void setMatrix(const SkMatrix& m) { fViewMatrix = m; }
331 333
332 /** 334 /**
333 * Sets the current transformation matrix to identity. 335 * Sets the current transformation matrix to identity.
334 */ 336 */
335 void setIdentityMatrix(); 337 void setIdentityMatrix() { fViewMatrix.reset(); }
336 338
337 /** 339 /**
338 * Concats the current matrix. The passed matrix is applied before the 340 * Concats the current matrix. The passed matrix is applied before the
339 * current matrix. 341 * current matrix.
340 * @param m the matrix to concat. 342 * @param m the matrix to concat.
341 */ 343 */
342 void concatMatrix(const SkMatrix& m) const; 344 void concatMatrix(const SkMatrix& m) { fViewMatrix.preConcat(m); }
343 345
344 346
345 /////////////////////////////////////////////////////////////////////////// 347 ///////////////////////////////////////////////////////////////////////////
346 // Clip state 348 // Clip state
347 /** 349 /**
348 * Gets the current clip. 350 * Gets the current clip.
349 * @return the current clip. 351 * @return the current clip.
350 */ 352 */
351 const GrClipData* getClip() const; 353 const GrClipData* getClip() const { return fClip; }
352 354
353 /** 355 /**
354 * Sets the clip. 356 * Sets the clip.
355 * @param clipData the clip to set. 357 * @param clipData the clip to set.
356 */ 358 */
357 void setClip(const GrClipData* clipData); 359 void setClip(const GrClipData* clipData) { fClip = clipData; }
358 360
359 /////////////////////////////////////////////////////////////////////////// 361 ///////////////////////////////////////////////////////////////////////////
360 // Draws 362 // Draws
361 363
362 /** 364 /**
363 * Clear the entire or rect of the render target, ignoring any clips. 365 * Clear the entire or rect of the render target, ignoring any clips.
364 * @param rect the rect to clear or the whole thing if rect is NULL. 366 * @param rect the rect to clear or the whole thing if rect is NULL.
365 * @param color the color to clear to. 367 * @param color the color to clear to.
366 * @param target if non-NULL, the render target to clear otherwise clear 368 * @param target if non-NULL, the render target to clear otherwise clear
367 * the current render target 369 * the current render target
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 #endif 859 #endif
858 860
859 private: 861 private:
860 // Used to indicate whether a draw should be performed immediately or queued in fDrawBuffer. 862 // Used to indicate whether a draw should be performed immediately or queued in fDrawBuffer.
861 enum BufferedDraw { 863 enum BufferedDraw {
862 kYes_BufferedDraw, 864 kYes_BufferedDraw,
863 kNo_BufferedDraw, 865 kNo_BufferedDraw,
864 }; 866 };
865 BufferedDraw fLastDrawWasBuffered; 867 BufferedDraw fLastDrawWasBuffered;
866 868
867 GrGpu* fGpu; 869 GrGpu* fGpu;
868 GrDrawState* fDrawState; 870 SkMatrix fViewMatrix;
871 SkAutoTUnref<GrRenderTarget> fRenderTarget;
872 const GrClipData* fClip; // TODO: make this ref counted
873 GrDrawState* fDrawState;
869 874
870 GrResourceCache* fTextureCache; 875 GrResourceCache* fTextureCache;
871 GrFontCache* fFontCache; 876 GrFontCache* fFontCache;
872 877
873 GrPathRendererChain* fPathRendererChain; 878 GrPathRendererChain* fPathRendererChain;
874 GrSoftwarePathRenderer* fSoftwarePathRenderer; 879 GrSoftwarePathRenderer* fSoftwarePathRenderer;
875 880
876 GrVertexBufferAllocPool* fDrawBufferVBAllocPool; 881 GrVertexBufferAllocPool* fDrawBufferVBAllocPool;
877 GrIndexBufferAllocPool* fDrawBufferIBAllocPool; 882 GrIndexBufferAllocPool* fDrawBufferIBAllocPool;
878 GrInOrderDrawBuffer* fDrawBuffer; 883 GrInOrderDrawBuffer* fDrawBuffer;
879 884
880 GrAARectRenderer* fAARectRenderer; 885 GrAARectRenderer* fAARectRenderer;
881 GrOvalRenderer* fOvalRenderer; 886 GrOvalRenderer* fOvalRenderer;
882 887
883 bool fDidTestPMConversions; 888 bool fDidTestPMConversions;
884 int fPMToUPMConversion; 889 int fPMToUPMConversion;
885 int fUPMToPMConversion; 890 int fUPMToPMConversion;
886 891
887 struct CleanUpData { 892 struct CleanUpData {
888 PFCleanUpFunc fFunc; 893 PFCleanUpFunc fFunc;
889 void* fInfo; 894 void* fInfo;
890 }; 895 };
891 896
892 SkTDArray<CleanUpData> fCleanUpData; 897 SkTDArray<CleanUpData> fCleanUpData;
893 898
894 GrContext(); // init must be called after the constructor. 899 GrContext(); // init must be called after the constructor.
895 bool init(GrBackend, GrBackendContext); 900 bool init(GrBackend, GrBackendContext);
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 } 1019 }
1015 1020
1016 GrTexture* texture() { return fTexture; } 1021 GrTexture* texture() { return fTexture; }
1017 1022
1018 private: 1023 private:
1019 GrContext* fContext; 1024 GrContext* fContext;
1020 GrTexture* fTexture; 1025 GrTexture* fTexture;
1021 }; 1026 };
1022 1027
1023 #endif 1028 #endif
OLDNEW
« no previous file with comments | « no previous file | include/gpu/GrEffectStage.h » ('j') | src/gpu/GrContext.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698