gpu: Move renderpass handling into the nodeprocessor
There's no need for the frame to do this.
This commit is contained in:
@@ -10,7 +10,6 @@
|
|||||||
#include "gskgpunodeprocessorprivate.h"
|
#include "gskgpunodeprocessorprivate.h"
|
||||||
#include "gskgpuopprivate.h"
|
#include "gskgpuopprivate.h"
|
||||||
#include "gskgpurendererprivate.h"
|
#include "gskgpurendererprivate.h"
|
||||||
#include "gskgpurenderpassopprivate.h"
|
|
||||||
#include "gskgpuuploadopprivate.h"
|
#include "gskgpuuploadopprivate.h"
|
||||||
|
|
||||||
#include "gskdebugprivate.h"
|
#include "gskdebugprivate.h"
|
||||||
@@ -559,29 +558,6 @@ copy_texture (gpointer user_data,
|
|||||||
*target = g_object_ref (texture);
|
*target = g_object_ref (texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gsk_gpu_frame_record_rect (GskGpuFrame *self,
|
|
||||||
GskGpuImage *target,
|
|
||||||
const cairo_rectangle_int_t *clip,
|
|
||||||
GskRenderNode *node,
|
|
||||||
const graphene_rect_t *viewport)
|
|
||||||
{
|
|
||||||
gsk_gpu_render_pass_begin_op (self,
|
|
||||||
target,
|
|
||||||
clip,
|
|
||||||
GSK_RENDER_PASS_PRESENT);
|
|
||||||
|
|
||||||
gsk_gpu_node_processor_process (self,
|
|
||||||
target,
|
|
||||||
clip,
|
|
||||||
node,
|
|
||||||
viewport);
|
|
||||||
|
|
||||||
gsk_gpu_render_pass_end_op (self,
|
|
||||||
target,
|
|
||||||
GSK_RENDER_PASS_PRESENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gsk_gpu_frame_record (GskGpuFrame *self,
|
gsk_gpu_frame_record (GskGpuFrame *self,
|
||||||
gint64 timestamp,
|
gint64 timestamp,
|
||||||
@@ -604,20 +580,20 @@ gsk_gpu_frame_record (GskGpuFrame *self,
|
|||||||
cairo_rectangle_int_t rect;
|
cairo_rectangle_int_t rect;
|
||||||
|
|
||||||
cairo_region_get_rectangle (clip, i, &rect);
|
cairo_region_get_rectangle (clip, i, &rect);
|
||||||
gsk_gpu_frame_record_rect (self, target, &rect, node, viewport);
|
gsk_gpu_node_processor_process (self, target, &rect, node, viewport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gsk_gpu_frame_record_rect (self,
|
gsk_gpu_node_processor_process (self,
|
||||||
target,
|
target,
|
||||||
&(cairo_rectangle_int_t) {
|
&(cairo_rectangle_int_t) {
|
||||||
0, 0,
|
0, 0,
|
||||||
gsk_gpu_image_get_width (target),
|
gsk_gpu_image_get_width (target),
|
||||||
gsk_gpu_image_get_height (target)
|
gsk_gpu_image_get_height (target)
|
||||||
},
|
},
|
||||||
node,
|
node,
|
||||||
viewport);
|
viewport);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (texture)
|
if (texture)
|
||||||
|
|||||||
@@ -378,8 +378,17 @@ gsk_gpu_node_processor_process (GskGpuFrame *frame,
|
|||||||
clip,
|
clip,
|
||||||
viewport);
|
viewport);
|
||||||
|
|
||||||
|
gsk_gpu_render_pass_begin_op (frame,
|
||||||
|
target,
|
||||||
|
clip,
|
||||||
|
GSK_RENDER_PASS_PRESENT);
|
||||||
|
|
||||||
gsk_gpu_node_processor_add_node (&self, node);
|
gsk_gpu_node_processor_add_node (&self, node);
|
||||||
|
|
||||||
|
gsk_gpu_render_pass_end_op (frame,
|
||||||
|
target,
|
||||||
|
GSK_RENDER_PASS_PRESENT);
|
||||||
|
|
||||||
gsk_gpu_node_processor_finish (&self);
|
gsk_gpu_node_processor_finish (&self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user