29 Star 66 Fork 359

openEuler/qemu

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
rect.h 1.19 KB
一键复制 编辑 原始数据 按行查看 历史
/*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef QEMU_RECT_H
#define QEMU_RECT_H
#include <stdint.h>
#include <stdbool.h>
typedef struct QemuRect {
int16_t x;
int16_t y;
uint16_t width;
uint16_t height;
} QemuRect;
static inline void qemu_rect_init(QemuRect *rect,
int16_t x, int16_t y,
uint16_t width, uint16_t height)
{
rect->x = x;
rect->y = y;
rect->width = width;
rect->height = height;
}
static inline void qemu_rect_translate(QemuRect *rect,
int16_t dx, int16_t dy)
{
rect->x += dx;
rect->y += dy;
}
static inline bool qemu_rect_intersect(const QemuRect *a, const QemuRect *b,
QemuRect *res)
{
int16_t x1, x2, y1, y2;
x1 = MAX(a->x, b->x);
y1 = MAX(a->y, b->y);
x2 = MIN(a->x + a->width, b->x + b->width);
y2 = MIN(a->y + a->height, b->y + b->height);
if (x1 >= x2 || y1 >= y2) {
if (res) {
qemu_rect_init(res, 0, 0, 0, 0);
}
return false;
}
if (res) {
qemu_rect_init(res, x1, y1, x2 - x1, y2 - y1);
}
return true;
}
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/openeuler/qemu.git
[email protected]:openeuler/qemu.git
openeuler
qemu
qemu
master

搜索帮助