mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 10:57:34 +09:00
CWebRender pt2
This commit is contained in:
parent
1190eb1c6a
commit
fe181d242f
22 changed files with 1623 additions and 489 deletions
82
gfx/wr/wr_internal.h
Normal file
82
gfx/wr/wr_internal.h
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
#ifndef GFX_WR_INTERNAL_H
|
||||
#define GFX_WR_INTERNAL_H
|
||||
|
||||
#include <webrender.h>
|
||||
#include <float.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
typedef struct {
|
||||
wr_rect rect;
|
||||
wr_color color;
|
||||
wr_transform transform;
|
||||
wr_rect clip_rect;
|
||||
uint8_t has_clip;
|
||||
uint8_t kind;
|
||||
uint8_t active;
|
||||
uint32_t image_key;
|
||||
wr_rect tex_rect;
|
||||
wr_item_id item_id;
|
||||
} wr_rect_command;
|
||||
|
||||
typedef struct {
|
||||
wr_transform transform;
|
||||
float opacity;
|
||||
size_t clip_depth;
|
||||
} wr_display_state;
|
||||
|
||||
typedef struct {
|
||||
size_t command_count;
|
||||
wr_rect_command* commands;
|
||||
} wr_scene_transaction;
|
||||
|
||||
struct wr_context {
|
||||
wr_rect_command* commands;
|
||||
size_t command_count;
|
||||
size_t command_capacity;
|
||||
|
||||
wr_gpu_quad* quads;
|
||||
size_t quad_count;
|
||||
size_t quad_capacity;
|
||||
|
||||
wr_gpu_batch* batches;
|
||||
size_t batch_count;
|
||||
size_t batch_capacity;
|
||||
|
||||
wr_rect viewport;
|
||||
wr_transform transform;
|
||||
float opacity;
|
||||
wr_rect* clip_stack;
|
||||
size_t clip_depth;
|
||||
size_t clip_capacity;
|
||||
wr_display_state* state_stack;
|
||||
size_t state_depth;
|
||||
size_t state_capacity;
|
||||
wr_item_id next_item_id;
|
||||
wr_image_resource* images;
|
||||
size_t image_count;
|
||||
size_t image_capacity;
|
||||
wr_scene_transaction* transactions;
|
||||
size_t transaction_depth;
|
||||
size_t transaction_capacity;
|
||||
int frame_valid;
|
||||
wr_frame frame;
|
||||
};
|
||||
|
||||
int wr_size_mul_overflow(size_t, size_t);
|
||||
int wr_reserve(void**, size_t*, size_t, size_t);
|
||||
int wr_valid_rect(wr_rect);
|
||||
int wr_valid_transform(wr_transform);
|
||||
wr_transform wr_identity_transform(void);
|
||||
wr_transform wr_multiply_transform(wr_transform, wr_transform);
|
||||
wr_rect wr_empty_rect(void);
|
||||
float wr_clamp01(float);
|
||||
wr_color wr_normalize_color(wr_color);
|
||||
int wr_colors_equal(wr_color, wr_color);
|
||||
int wr_rects_equal(wr_rect, wr_rect);
|
||||
int wr_intersects(wr_rect, wr_rect);
|
||||
wr_rect wr_intersect_rect(wr_rect, wr_rect);
|
||||
wr_rect wr_transform_bounds(wr_rect, wr_transform);
|
||||
int wr_command_occluded(const wr_context*, size_t);
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue