XenevaOS
Loading...
Searching...
No Matches
Functions
compose.cpp File Reference
#include "compose.h"
#include "_fastcpy.h"
Include dependency graph for compose.cpp:

Functions

Window_get_always_on_top ()
 
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
 

Detailed Description

BSD 2-Clause License

Copyright (c) 2022-2026, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

◆ _compose_always_on_top_dirty()

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

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 
)

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

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 
)

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

◆ _get_always_on_top()

Window * _get_always_on_top ( )
extern