XenevaOS
Loading...
Searching...
No Matches
Functions
compose.h File Reference
#include "deodxr.h"
#include "backdirty.h"
#include "dirty.h"
#include "window.h"
#include "alpha.h"
#include "animation.h"
#include "clip.h"
#include "surface.h"
Include dependency graph for compose.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void _compose_dirty_area_ (ChCanvas *canvas, Window *win, Window *focusedWin, WinSharedInfo *info)
 Check for small area updates !! not entire window.
 
void _compose_entire_window (ChCanvas *canvas, Window *win, bool _window_update_all_, WinSharedInfo *info, Window *focusedWin, bool _window_moving_, bool _shadow_update)
 compose_entire_window – composes an entire window to canvas
 
void compose_window_zoomed (ChCanvas *canvas, Window *win, WinSharedInfo *info)
 compose_window_zoomed – stretched-fill bilinear upscale of a window buffer to the full scanout (WinSharedInfo->zoomed)
 
void compose_window_scaled_to (ChCanvas *canvas, Window *win, int src_w, int src_h, int dst_x, int dst_y, int dw, int dh)
 compose_window_scaled_to – scales the window's own buffer (src_w x src_h) to (dw x dh) and alpha-blends it onto the canvas at (dst_x, dst_y). Clipped to the canvas, NEON fast path kept.
 
void compose_window_scaled_to_clip (ChCanvas *canvas, Window *win, int src_w, int src_h, int dst_x, int dst_y, int dw, int dh, int clip_x, int clip_y, int clip_w, int clip_h)
 compose_window_scaled_to_clip – scales the window's own buffer (src_w x src_h) to (dw x dh) and alpha-blends it onto the canvas at (dst_x, dst_y). Clipped to the canvas, NEON fast path kept.
 
void _compose_always_on_top_dirty (ChCanvas *canvas, WinSharedInfo *info, bool _window_moving_, Window *focusedWin, Window *win)
 _compose_always_on_top_dirty – compose always on top window's dirty rectangles
 
void _compose_always_on_top_entire (ChCanvas *canvas, Window *win, bool _always_on_top_update, bool _window_moving_, WinSharedInfo *info, Window *rootWin)
 _compose_always_on_top_entire – compose entire always on top window
 

Function Documentation

◆ _compose_always_on_top_dirty()

void _compose_always_on_top_dirty ( ChCanvas *  canvas,
WinSharedInfo *  info,
bool  _window_moving_,
Window *  focusedWin,
Window *  win 
)
extern

_compose_always_on_top_dirty – compose always on top window's dirty rectangles

Parameters
canvas– Pointer to canvas
info– Pointer to window's shared info
_window_moving_– window moving bit
focusedWin– Pointer to focused Window
win– Pointer to main window

◆ _compose_always_on_top_entire()

void _compose_always_on_top_entire ( ChCanvas *  canvas,
Window *  win,
bool  _always_on_top_update,
bool  _window_moving_,
WinSharedInfo *  info,
Window *  rootWin 
)
extern

_compose_always_on_top_entire – compose entire always on top window

◆ _compose_dirty_area_()

void _compose_dirty_area_ ( ChCanvas *  canvas,
Window *  win,
Window *  focusedWin,
WinSharedInfo *  info 
)
extern

Check for small area updates !! not entire window.

◆ _compose_entire_window()

void _compose_entire_window ( ChCanvas *  canvas,
Window *  win,
bool  _window_update_all_,
WinSharedInfo *  info,
Window *  focusedWin,
bool  _window_moving_,
bool  _shadow_update 
)
extern

compose_entire_window – composes an entire window to canvas

Parameters
canvas– Pointer to Deodhai canvas
win– Pointer to main window to compose
_window_update_all_– update all bit
info– Pointer to main window info struct
focusedWin– focused window pointer
_window_moving_– window moving bit
_shadow_update– shadow update bit which tells if we need to update shadows or not

if ((info->x - SHADOW_SIZE) <= 0) { info->x = 5 + SHADOW_SIZE; winx = info->x; glass_invalidate(win); }

if ((info->y - SHADOW_SIZE) <= 0) { info->y = 5 + SHADOW_SIZE; winy = info->y; glass_invalidate(win); }

if ((info->x + 24) >= (int)canvas->screenWidth) info->x = canvas->screenWidth - 24;

if ((info->y + 24) >= (int)canvas->screenHeight) info->y = canvas->screenHeight - 24;

◆ compose_window_scaled_to()

void compose_window_scaled_to ( ChCanvas *  canvas,
Window *  win,
int  src_w,
int  src_h,
int  dst_x,
int  dst_y,
int  dw,
int  dh 
)

compose_window_scaled_to – scales the window's own buffer (src_w x src_h) to (dw x dh) and alpha-blends it onto the canvas at (dst_x, dst_y). Clipped to the canvas, NEON fast path kept.

Parameters
src_w,src_h– ORIGINAL size of win->backBuffer (not info->width/height, those change while resizing)
dst_x,dst_y– top-left of the scaled window on the canvas
dw,dh– size to scale to

◆ compose_window_scaled_to_clip()

void compose_window_scaled_to_clip ( ChCanvas *  canvas,
Window *  win,
int  src_w,
int  src_h,
int  dst_x,
int  dst_y,
int  dw,
int  dh,
int  clip_x,
int  clip_y,
int  clip_w,
int  clip_h 
)

compose_window_scaled_to_clip – scales the window's own buffer (src_w x src_h) to (dw x dh) and alpha-blends it onto the canvas at (dst_x, dst_y). Clipped to the canvas, NEON fast path kept.

Parameters
src_w,src_h– ORIGINAL size of win->backBuffer (not info->width/height, those change while resizing)
dst_x,dst_y– top-left of the scaled window on the canvas
dw,dh– size to scale to

◆ compose_window_zoomed()

void compose_window_zoomed ( ChCanvas *  canvas,
Window *  win,
WinSharedInfo *  info 
)
extern

compose_window_zoomed – stretched-fill bilinear upscale of a window buffer to the full scanout (WinSharedInfo->zoomed)

compose_window_zoomed – stretched-fill bilinear upscale of a window buffer to the full scanout (WinSharedInfo->zoomed)