OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 #include "GrCommandBuilder.h" | 8 #include "GrCommandBuilder.h" |
9 | 9 |
10 #include "GrInOrderCommandBuilder.h" | 10 #include "GrInOrderCommandBuilder.h" |
11 #include "GrReorderCommandBuilder.h" | 11 #include "GrReorderCommandBuilder.h" |
12 | 12 |
13 GrCommandBuilder* GrCommandBuilder::Create(GrGpu* gpu, bool reorder) { | 13 GrCommandBuilder* GrCommandBuilder::Create(GrGpu* gpu, bool reorder) { |
14 if (reorder) { | 14 if (reorder) { |
15 return SkNEW(GrReorderCommandBuilder); | 15 return SkNEW(GrReorderCommandBuilder); |
16 } else { | 16 } else { |
17 return SkNEW(GrInOrderCommandBuilder); | 17 return SkNEW(GrInOrderCommandBuilder); |
18 } | 18 } |
19 } | 19 } |
20 | 20 |
21 GrTargetCommands::Cmd* GrCommandBuilder::recordClear(const SkIRect& rect, | |
22 GrColor color, | |
23 GrRenderTarget* renderTarge
t) { | |
24 SkASSERT(renderTarget); | |
25 SkASSERT(rect.fLeft <= rect.fRight && rect.fTop <= rect.fBottom); | |
26 | |
27 Clear* clr = GrNEW_APPEND_TO_RECORDER(*this->cmdBuffer(), Clear, (renderTarg
et)); | |
28 GrColorIsPMAssert(color); | |
29 clr->fColor = color; | |
30 clr->fRect = rect; | |
31 GrBATCH_INFO("Recording clear %d\n", clr->uniqueID()); | |
32 return clr; | |
33 } | |
34 | |
35 GrTargetCommands::Cmd* GrCommandBuilder::recordClearStencilClip(const SkIRect& r
ect, | 21 GrTargetCommands::Cmd* GrCommandBuilder::recordClearStencilClip(const SkIRect& r
ect, |
36 bool insideClip, | 22 bool insideClip, |
37 GrRenderTarget*
renderTarget) { | 23 GrRenderTarget*
renderTarget) { |
38 SkASSERT(renderTarget); | 24 SkASSERT(renderTarget); |
39 | 25 |
40 ClearStencilClip* clr = GrNEW_APPEND_TO_RECORDER(*this->cmdBuffer(), | 26 ClearStencilClip* clr = GrNEW_APPEND_TO_RECORDER(*this->cmdBuffer(), |
41 ClearStencilClip, | 27 ClearStencilClip, |
42 (renderTarget)); | 28 (renderTarget)); |
43 clr->fRect = rect; | 29 clr->fRect = rect; |
44 clr->fInsideClip = insideClip; | 30 clr->fInsideClip = insideClip; |
45 GrBATCH_INFO("Recording clear stencil clip %d\n", clr->uniqueID()); | 31 GrBATCH_INFO("Recording clear stencil clip %d\n", clr->uniqueID()); |
46 return clr; | 32 return clr; |
47 } | 33 } |
48 | 34 |
49 GrTargetCommands::Cmd* GrCommandBuilder::recordDiscard(GrRenderTarget* renderTar
get) { | |
50 SkASSERT(renderTarget); | |
51 | |
52 Clear* clr = GrNEW_APPEND_TO_RECORDER(*this->cmdBuffer(), Clear, (renderTarg
et)); | |
53 clr->fColor = GrColor_ILLEGAL; | |
54 GrBATCH_INFO("Recording discard %d\n", clr->uniqueID()); | |
55 return clr; | |
56 } | |
57 | |
58 GrTargetCommands::Cmd* GrCommandBuilder::recordCopySurface(GrSurface* dst, | 35 GrTargetCommands::Cmd* GrCommandBuilder::recordCopySurface(GrSurface* dst, |
59 GrSurface* src, | 36 GrSurface* src, |
60 const SkIRect& srcRec
t, | 37 const SkIRect& srcRec
t, |
61 const SkIPoint& dstPo
int) { | 38 const SkIPoint& dstPo
int) { |
62 CopySurface* cs = GrNEW_APPEND_TO_RECORDER(*this->cmdBuffer(), CopySurface,
(dst, src)); | 39 CopySurface* cs = GrNEW_APPEND_TO_RECORDER(*this->cmdBuffer(), CopySurface,
(dst, src)); |
63 cs->fSrcRect = srcRect; | 40 cs->fSrcRect = srcRect; |
64 cs->fDstPoint = dstPoint; | 41 cs->fDstPoint = dstPoint; |
65 GrBATCH_INFO("Recording copysurface %d\n", cs->uniqueID()); | 42 GrBATCH_INFO("Recording copysurface %d\n", cs->uniqueID()); |
66 return cs; | 43 return cs; |
67 } | 44 } |
OLD | NEW |