1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-stratovirt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
pixman.rs 8.5 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
Yan Wang Отправлено 3 лет назад 3598540
// Copyright (c) 2020 Huawei Technologies Co.,Ltd. All rights reserved.
//
// StratoVirt is licensed under Mulan PSL v2.
// You can use this software according to the terms and conditions of the Mulan
// PSL v2.
// You may obtain a copy of Mulan PSL v2 at:
// http://license.coscl.org.cn/MulanPSL2
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
// KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
// See the Mulan PSL v2 for more details.
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
use std::ptr;
pub type pixman_bool_t = libc::c_int;
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct pixman_box16 {
pub x1: i16,
pub y1: i16,
pub x2: i16,
pub y2: i16,
}
pub type pixman_box16_t = pixman_box16;
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct pixman_color {
pub red: u16,
pub green: u16,
pub blue: u16,
pub alpha: u16,
}
pub type pixman_color_t = pixman_color;
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum pixman_format_code_t {
PIXMAN_a8r8g8b8 = 537036936,
PIXMAN_x8r8g8b8 = 537004168,
PIXMAN_a8b8g8r8 = 537102472,
PIXMAN_x8b8g8r8 = 537069704,
PIXMAN_b8g8r8a8 = 537430152,
PIXMAN_b8g8r8x8 = 537397384,
PIXMAN_r8g8b8a8 = 537495688,
PIXMAN_r8g8b8x8 = 537462920,
PIXMAN_x14r6g6b6 = 537003622,
PIXMAN_x2r10g10b10 = 537004714,
PIXMAN_a2r10g10b10 = 537012906,
PIXMAN_x2b10g10r10 = 537070250,
PIXMAN_a2b10g10r10 = 537078442,
PIXMAN_a8r8g8b8_sRGB = 537561224,
PIXMAN_r8g8b8 = 402786440,
PIXMAN_b8g8r8 = 402851976,
PIXMAN_r5g6b5 = 268567909,
PIXMAN_b5g6r5 = 268633445,
PIXMAN_a1r5g5b5 = 268571989,
PIXMAN_x1r5g5b5 = 268567893,
PIXMAN_a1b5g5r5 = 268637525,
PIXMAN_x1b5g5r5 = 268633429,
PIXMAN_a4r4g4b4 = 268584004,
PIXMAN_x4r4g4b4 = 268567620,
PIXMAN_a4b4g4r4 = 268649540,
PIXMAN_x4b4g4r4 = 268633156,
PIXMAN_a8 = 134316032,
PIXMAN_r3g3b2 = 134349618,
PIXMAN_b2g3r3 = 134415154,
PIXMAN_a2r2g2b2 = 134357538,
PIXMAN_a2b2g2r2 = 134423074,
PIXMAN_c8 = 134479872,
PIXMAN_g8 = 134545408,
PIXMAN_x4a4 = 134299648,
PIXMAN_a4 = 67190784,
PIXMAN_r1g2b1 = 67240225,
PIXMAN_b1g2r1 = 67305761,
PIXMAN_a1r1g1b1 = 67244305,
PIXMAN_a1b1g1r1 = 67309841,
PIXMAN_c4 = 67371008,
PIXMAN_g4 = 67436544,
PIXMAN_a1 = 16846848,
PIXMAN_g1 = 17104896,
PIXMAN_yuy2 = 268828672,
PIXMAN_yv12 = 201785344,
}
#[repr(C)]
#[derive(Default, Debug, Copy, Clone)]
pub struct pixman_image {
_unused: [u8; 0],
}
pub type pixman_image_t = pixman_image;
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct pixman_rectangle16 {
pub x: i16,
pub y: i16,
pub width: u16,
pub height: u16,
}
pub type pixman_rectangle16_t = pixman_rectangle16;
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct pixman_region16_data {
pub size: libc::c_long,
pub numRects: libc::c_long,
}
pub type pixman_region16_data_t = pixman_region16_data;
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct pixman_region16 {
pub extents: pixman_box16_t,
pub data: *mut pixman_region16_data_t,
}
pub type pixman_region16_t = pixman_region16;
impl Default for pixman_region16 {
fn default() -> Self {
pixman_region16 {
extents: pixman_box16_t::default(),
data: ptr::null_mut(),
}
}
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum pixman_op_t {
PIXMAN_OP_CLEAR = 0,
PIXMAN_OP_SRC = 1,
PIXMAN_OP_DST = 2,
PIXMAN_OP_OVER = 3,
PIXMAN_OP_OVER_REVERSE = 4,
PIXMAN_OP_IN = 5,
PIXMAN_OP_IN_REVERSE = 6,
PIXMAN_OP_OUT = 7,
PIXMAN_OP_OUT_REVERSE = 8,
PIXMAN_OP_ATOP = 9,
PIXMAN_OP_ATOP_REVERSE = 10,
PIXMAN_OP_XOR = 11,
PIXMAN_OP_ADD = 12,
PIXMAN_OP_SATURATE = 13,
PIXMAN_OP_DISJOINT_CLEAR = 16,
PIXMAN_OP_DISJOINT_SRC = 17,
PIXMAN_OP_DISJOINT_DST = 18,
PIXMAN_OP_DISJOINT_OVER = 19,
PIXMAN_OP_DISJOINT_OVER_REVERSE = 20,
PIXMAN_OP_DISJOINT_IN = 21,
PIXMAN_OP_DISJOINT_IN_REVERSE = 22,
PIXMAN_OP_DISJOINT_OUT = 23,
PIXMAN_OP_DISJOINT_OUT_REVERSE = 24,
PIXMAN_OP_DISJOINT_ATOP = 25,
PIXMAN_OP_DISJOINT_ATOP_REVERSE = 26,
PIXMAN_OP_DISJOINT_XOR = 27,
PIXMAN_OP_CONJOINT_CLEAR = 32,
PIXMAN_OP_CONJOINT_SRC = 33,
PIXMAN_OP_CONJOINT_DST = 34,
PIXMAN_OP_CONJOINT_OVER = 35,
PIXMAN_OP_CONJOINT_OVER_REVERSE = 36,
PIXMAN_OP_CONJOINT_IN = 37,
PIXMAN_OP_CONJOINT_IN_REVERSE = 38,
PIXMAN_OP_CONJOINT_OUT = 39,
PIXMAN_OP_CONJOINT_OUT_REVERSE = 40,
PIXMAN_OP_CONJOINT_ATOP = 41,
PIXMAN_OP_CONJOINT_ATOP_REVERSE = 42,
PIXMAN_OP_CONJOINT_XOR = 43,
PIXMAN_OP_MULTIPLY = 48,
PIXMAN_OP_SCREEN = 49,
PIXMAN_OP_OVERLAY = 50,
PIXMAN_OP_DARKEN = 51,
PIXMAN_OP_LIGHTEN = 52,
PIXMAN_OP_COLOR_DODGE = 53,
PIXMAN_OP_COLOR_BURN = 54,
PIXMAN_OP_HARD_LIGHT = 55,
PIXMAN_OP_SOFT_LIGHT = 56,
PIXMAN_OP_DIFFERENCE = 57,
PIXMAN_OP_EXCLUSION = 58,
PIXMAN_OP_HSL_HUE = 59,
PIXMAN_OP_HSL_SATURATION = 60,
PIXMAN_OP_HSL_COLOR = 61,
PIXMAN_OP_HSL_LUMINOSITY = 62,
}
pub type pixman_image_destroy_func_t = ::std::option::Option<
unsafe extern "C" fn(image: *mut pixman_image_t, data: *mut libc::c_void),
>;
pub extern "C" fn virtio_gpu_unref_resource_callback(
_image: *mut pixman_image_t,
data: *mut libc::c_void,
) {
unsafe { pixman_image_unref(data.cast()) };
}
pub fn pixman_format_reshift(val: u32, ofs: u32, num: u32) -> u32 {
((val >> (ofs)) & ((1 << (num)) - 1)) << ((val >> 22) & 3)
}
pub fn pixman_format_bpp(val: u32) -> u8 {
pixman_format_reshift(val, 24, 8) as u8
}
pub fn pixman_format_a(val: u32) -> u8 {
pixman_format_reshift(val, 12, 4) as u8
}
pub fn pixman_format_r(val: u32) -> u8 {
pixman_format_reshift(val, 8, 4) as u8
}
pub fn pixman_format_g(val: u32) -> u8 {
pixman_format_reshift(val, 4, 4) as u8
}
pub fn pixman_format_b(val: u32) -> u8 {
pixman_format_reshift(val, 0, 4) as u8
}
pub fn pixman_format_depth(val: u32) -> u8 {
pixman_format_a(val) + pixman_format_r(val) + pixman_format_g(val) + pixman_format_b(val)
}
extern "C" {
pub fn pixman_format_supported_source(format: pixman_format_code_t) -> pixman_bool_t;
pub fn pixman_image_composite(
op: pixman_op_t,
src: *mut pixman_image_t,
mask: *mut pixman_image_t,
dest: *mut pixman_image_t,
src_x: i16,
src_y: i16,
mask_x: i16,
mask_y: i16,
dest_x: i16,
dest_y: i16,
width: u16,
height: u16,
);
pub fn pixman_image_create_bits(
format: pixman_format_code_t,
width: libc::c_int,
height: libc::c_int,
bits: *mut u32,
rowstride_bytes: libc::c_int,
) -> *mut pixman_image_t;
pub fn pixman_image_create_solid_fill(color: *const pixman_color_t) -> *mut pixman_image_t;
pub fn pixman_image_fill_rectangles(
op: pixman_op_t,
image: *mut pixman_image_t,
color: *const pixman_color_t,
n_rects: libc::c_int,
rects: *const pixman_rectangle16_t,
) -> pixman_bool_t;
pub fn pixman_image_get_data(image: *mut pixman_image_t) -> *mut u32;
pub fn pixman_image_get_format(image: *mut pixman_image_t) -> pixman_format_code_t;
pub fn pixman_image_get_height(image: *mut pixman_image_t) -> libc::c_int;
pub fn pixman_image_get_stride(image: *mut pixman_image_t) -> libc::c_int;
pub fn pixman_image_get_width(image: *mut pixman_image_t) -> libc::c_int;
pub fn pixman_image_ref(image: *mut pixman_image_t) -> *mut pixman_image_t;
pub fn pixman_image_set_destroy_function(
image: *mut pixman_image_t,
function: pixman_image_destroy_func_t,
data: *mut libc::c_void,
);
pub fn pixman_image_unref(image: *mut pixman_image_t) -> pixman_bool_t;
pub fn pixman_region_extents(region: *mut pixman_region16_t) -> *mut pixman_box16_t;
pub fn pixman_region_fini(region: *mut pixman_region16_t);
pub fn pixman_region_init(region: *mut pixman_region16_t);
pub fn pixman_region_init_rect(
region: *mut pixman_region16_t,
x: libc::c_int,
y: libc::c_int,
width: libc::c_uint,
height: libc::c_uint,
);
pub fn pixman_region_intersect(
new_reg: *mut pixman_region16_t,
reg1: *mut pixman_region16_t,
reg2: *mut pixman_region16_t,
) -> pixman_bool_t;
pub fn pixman_region_translate(region: *mut pixman_region16_t, x: libc::c_int, y: libc::c_int);
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/openeuler-stratovirt.git
git@gitlife.ru:oschina-mirror/openeuler-stratovirt.git
oschina-mirror
openeuler-stratovirt
openeuler-stratovirt
v2.2.0-rc3