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_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

don't modify the update entire window, entire window update will handle all the clipping optimizations there, this function is responsible for dirty rect only, not entire window update

◆ _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

for AOT windows, we don't need visible rect due to occlusion of normal behind windows, rather we need the behind window rect for which only update that portion

schedule this rectangle for next frame, so that we don't see incomplete update on the next frame

but the situation is, we need urgent entire window update here, becuase maybe window was hidden but the algorithm above detected the AOT window and normal window, because algorithm doesn't care about hidden or non-hidden

◆ _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

clip it