GrDrawTarget::AutoDeviceCoordDraw::~AutoDeviceCoordDraw() { GrDrawState* drawState = fDrawTarget->drawState(); drawState->setViewMatrix(fViewMatrix); for (int s = 0; s < GrDrawState::kNumStages; ++s) { if (fStageMask & (1 << s)) { *drawState->sampler(s)->matrix() = fSamplerMatrices[s]; } } }
void GrClipMaskManager::drawTexture(GrTexture* target, GrTexture* texture) { GrDrawState* drawState = fGpu->drawState(); GrAssert(NULL != drawState); // no AA here since it is encoded in the texture drawState->setRenderTarget(target->asRenderTarget()); GrMatrix sampleM; sampleM.setIDiv(texture->width(), texture->height()); drawState->sampler(0)->reset(sampleM); drawState->createTextureEffect(0, texture); GrRect rect = GrRect::MakeWH(SkIntToScalar(target->width()), SkIntToScalar(target->height())); fGpu->drawSimpleRect(rect, NULL); drawState->disableStage(0); }
void GrClipMaskManager::drawTexture(GrGpu* gpu, GrTexture* target, GrTexture* texture) { GrDrawState* drawState = gpu->drawState(); GrAssert(NULL != drawState); // no AA here since it is encoded in the texture drawState->setRenderTarget(target->asRenderTarget()); GrMatrix sampleM; sampleM.setIDiv(texture->width(), texture->height()); drawState->setTexture(0, texture); drawState->sampler(0)->reset(GrSamplerState::kClamp_WrapMode, GrSamplerState::kNearest_Filter, sampleM); GrRect rect = GrRect::MakeWH(SkIntToScalar(target->width()), SkIntToScalar(target->height())); gpu->drawSimpleRect(rect, NULL, 1 << 0); drawState->setTexture(0, NULL); }