Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Gnome/gsk/gpu/shaders/   (Gnome Linux Desktop Version 4.23.2©)  Datei vom 30.5.2026 mit Größe 1 kB image not shown  

Quelle  gskgpucrossfade.glsl   Sprache: unbekannt

 
Spracherkennung für: .glsl vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

#ifdef GSK_PREAMBLE
textures = 2;
var_name = "gsk_gpu_cross_fade";
struct_name = "GskGpuCrossFade";
acs_equals_ccs = true;
acs_premultiplied = true;

graphene_rect_t bounds;
graphene_rect_t start_rect;
graphene_rect_t end_rect;
float opacity;
float progress;
#endif /* GSK_PREAMBLE */

#include "gskgpucrossfadeinstance.glsl"

PASS(0) vec2 _pos;
PASS_FLAT(1) Rect _start_rect;
PASS_FLAT(2) Rect _end_rect;
PASS(3) vec2 _start_coord;
PASS(4) vec2 _end_coord;
PASS_FLAT(5) float _start_opacity;
PASS_FLAT(6) float _end_opacity;


#ifdef GSK_VERTEX_SHADER

void
run (out vec2 pos)
{
  Rect b = rect_from_gsk (in_bounds);
  
  pos = rect_get_position (b);

  _pos = pos;

  Rect start_rect = rect_from_gsk (in_start_rect);
  _start_rect = start_rect;
  _start_coord = rect_get_coord (start_rect, pos);
  _start_opacity = in_opacity_progress[0] * (1.0 - in_opacity_progress[1]);

  Rect end_rect = rect_from_gsk (in_end_rect);
  _end_rect = end_rect;
  _end_coord = rect_get_coord (end_rect, pos);
  _end_opacity = in_opacity_progress[0] * in_opacity_progress[1];
}

#endif



#ifdef GSK_FRAGMENT_SHADER

void
run (out vec4 color,
     out vec2 position)
{
  vec4 start = output_color_alpha (texture (GSK_TEXTURE0, _start_coord),
                                   rect_coverage (_start_rect, _pos) *
                                   _start_opacity);
  vec4 end = output_color_alpha (texture (GSK_TEXTURE1, _end_coord),
                                 rect_coverage (_end_rect, _pos) *
                                 _end_opacity);

  color = start + end;
  position = _pos;
}

#endif

[Dauer der Verarbeitung: 0.11 Sekunden, vorverarbeitet 2026-07-02]