Home | History | Annotate | Download | only in output

Lines Matching refs:frame

81 void DirectRenderer::InitializeViewport(DrawingFrame* frame,
92 frame->projection_matrix = OrthoProjectionMatrix(draw_rect.x(),
97 frame->projection_matrix = OrthoProjectionMatrix(draw_rect.x(),
106 frame->window_matrix = window_matrix(window_rect.x(),
180 // Delete RenderPass textures from the previous frame that will not be used
207 DrawingFrame frame;
208 frame.render_passes_in_draw_order = render_passes_in_draw_order;
209 frame.root_render_pass = root_render_pass;
210 frame.root_damage_rect = Capabilities().using_partial_swap
213 frame.root_damage_rect.Intersect(gfx::Rect(device_viewport_rect.size()));
214 frame.device_viewport_rect = device_viewport_rect;
215 frame.device_clip_rect = device_clip_rect;
216 frame.disable_picture_quad_image_filtering =
220 &frame.overlay_list);
229 BeginDrawingFrame(&frame);
232 DrawRenderPass(&frame, pass);
241 UseRenderPass(&frame, pass);
243 CopyCurrentRenderPassToBitmap(&frame, pass->copy_requests.take(it));
246 FinishDrawingFrame(&frame);
252 const DrawingFrame* frame) {
253 gfx::Rect render_pass_scissor = frame->current_render_pass->output_rect;
255 if (frame->root_damage_rect == frame->root_render_pass->output_rect ||
256 !frame->current_render_pass->copy_requests.empty())
260 if (frame->current_render_pass->transform_to_root_target.GetInverse(
265 frame->root_damage_rect);
272 bool DirectRenderer::NeedDeviceClip(const DrawingFrame* frame) const {
273 if (frame->current_render_pass != frame->root_render_pass)
276 return !frame->device_clip_rect.Contains(frame->device_viewport_rect);
279 gfx::Rect DirectRenderer::DeviceClipRectInWindowSpace(const DrawingFrame* frame)
281 gfx::Rect device_clip_rect = frame->device_clip_rect;
288 void DirectRenderer::SetScissorStateForQuad(const DrawingFrame* frame,
291 SetScissorTestRectInDrawSpace(frame, quad.clipRect());
294 if (NeedDeviceClip(frame)) {
295 SetScissorTestRect(DeviceClipRectInWindowSpace(frame));
303 const DrawingFrame* frame,
318 SetScissorTestRectInDrawSpace(frame, quad_scissor_rect);
322 const DrawingFrame* frame,
325 if (NeedDeviceClip(frame))
326 window_space_rect.Intersect(DeviceClipRectInWindowSpace(frame));
332 void DirectRenderer::DrawRenderPass(DrawingFrame* frame,
335 if (!UseRenderPass(frame, render_pass))
341 if (frame->current_render_pass == frame->root_render_pass &&
342 !frame->device_viewport_rect.Contains(
347 render_pass_scissor = ComputeScissorRectForRenderPass(frame);
348 SetScissorTestRectInDrawSpace(frame, render_pass_scissor);
349 if (!render_pass_scissor.Contains(frame->current_render_pass->output_rect))
353 if (frame->current_render_pass != frame->root_render_pass ||
355 if (NeedDeviceClip(frame)) {
356 SetScissorTestRect(DeviceClipRectInWindowSpace(frame));
364 frame->current_render_pass == frame->root_render_pass;
367 ClearFramebuffer(frame, has_external_stencil_test);
379 frame, quad, render_pass_scissor, &should_skip_quad);
381 SetScissorStateForQuad(frame, quad);
385 DoDrawQuad(frame, &quad);
390 bool DirectRenderer::UseRenderPass(DrawingFrame* frame,
392 frame->current_render_pass = render_pass;
393 frame->current_texture = NULL;
395 if (render_pass == frame->root_render_pass) {
396 BindFramebufferToOutputSurface(frame);
397 InitializeViewport(frame,
399 frame->device_viewport_rect,
415 return BindFramebufferToTexture(frame, texture, render_pass->output_rect);