PatchworkOS
Loading...
Searching...
No Matches
screen.c File Reference
#include "screen.h"
#include "region.h"
#include "surface.h"
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/fb.h>
#include <sys/io.h>
#include <sys/proc.h>

Go to the source code of this file.

Functions

static void frontbuffer_init (void)
 
static void backbuffer_init (void)
 
static void screen_invalidate (const rect_t *rect)
 
void screen_init (void)
 
void screen_deinit (void)
 
void screen_transfer (surface_t *surface, const rect_t *rect)
 
void screen_transfer_blend (surface_t *surface, const rect_t *rect)
 
void screen_transfer_frontbuffer (surface_t *surface, const rect_t *rect)
 
void screen_swap (void)
 
uint64_t screen_width (void)
 
uint64_t screen_height (void)
 
void screen_rect (rect_t *rect)
 

Variables

static fb_info_t info
 
static void * frontbuffer
 
static void * backbuffer
 
static rect_t screenRect
 
static region_t invalidRegion
 

Function Documentation

◆ backbuffer_init()

static void backbuffer_init ( void  )
static

Definition at line 62 of file screen.c.

References abort(), backbuffer, fb_info_t::height, info, malloc(), NULL, printf(), and fb_info_t::stride.

Referenced by screen_init().

◆ frontbuffer_init()

static void frontbuffer_init ( void  )
static

◆ screen_deinit()

void screen_deinit ( void  )

Definition at line 87 of file screen.c.

References backbuffer, free(), frontbuffer, fb_info_t::height, info, munmap(), and fb_info_t::stride.

Referenced by main().

◆ screen_height()

uint64_t screen_height ( void  )

Definition at line 199 of file screen.c.

References fb_info_t::height, and info.

Referenced by client_action_screen_info(), compositor_init(), and dwm_handle_mouse_event().

◆ screen_init()

void screen_init ( void  )

◆ screen_invalidate()

static void screen_invalidate ( const rect_t rect)
static

Definition at line 72 of file screen.c.

References invalidRegion, RECT_FIT, region_add(), and screenRect.

Referenced by screen_transfer(), and screen_transfer_blend().

◆ screen_rect()

void screen_rect ( rect_t rect)

Definition at line 204 of file screen.c.

References screenRect.

◆ screen_swap()

◆ screen_transfer()

◆ screen_transfer_blend()

void screen_transfer_blend ( surface_t surface,
const rect_t rect 
)

◆ screen_transfer_frontbuffer()

◆ screen_width()

uint64_t screen_width ( void  )

Definition at line 194 of file screen.c.

References info, and fb_info_t::width.

Referenced by client_action_screen_info(), compositor_init(), and dwm_handle_mouse_event().

Variable Documentation

◆ backbuffer

void* backbuffer
static

◆ frontbuffer

void* frontbuffer
static

Definition at line 15 of file screen.c.

Referenced by frontbuffer_init(), screen_deinit(), screen_swap(), and screen_transfer_frontbuffer().

◆ info

◆ invalidRegion

region_t invalidRegion
static

Definition at line 19 of file screen.c.

Referenced by screen_init(), screen_invalidate(), screen_swap(), and screen_transfer_frontbuffer().

◆ screenRect