mirror of
https://github.com/brl/mutter.git
synced 2024-11-22 08:00:42 -05:00
a4a688ed83
The old requirement that multiple MetaBackgroundActor objects be layered on top of each to produce blended backgrounds resulted in extremely inefficient drawing since the entire framebuffer had to be read and written multiple times. * Replace the MetaBackground ClutterContent with a plain GObject that serves to hold the background parameters and prerender textures to be used to draw the background. It handles colors, gradients, and blended images, but does not handle vignetting * Add vignetting to MetaBackgroundActor directly. * Add MetaBackgroundImage and MetaBackgroundImageCache to allow multiple MetaBackground objects to share the same images By removing the usage of ClutterContent, the following optimizations were easy to add: Blending is turned off when the actor is fully opaque Nearest-neighbour filtering is used when drawing 1:1 The GLSL vignette code is slightly improved to use a vertex shader snippet for computing the texture coordinate => position in actor mapping. https://bugzilla.gnome.org/show_bug.cgi?id=735637
16 lines
547 B
C
16 lines
547 B
C
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
|
|
#ifndef META_BACKGROUND_PRIVATE_H
|
|
#define META_BACKGROUND_PRIVATE_H
|
|
|
|
#include <config.h>
|
|
|
|
#include "meta-background-private.h"
|
|
|
|
CoglTexture *meta_background_get_texture (MetaBackground *self,
|
|
int monitor_index,
|
|
cairo_rectangle_int_t *texture_area,
|
|
CoglPipelineWrapMode *wrap_mode);
|
|
|
|
#endif /* META_BACKGROUND_PRIVATE_H */
|