Skip to content
Snippets Groups Projects
Commit 2a7eebf8 authored by adrian.spycher's avatar adrian.spycher
Browse files

feat: add resources and lib to call sprite hypercall

parent 1ed630ae
Branches
No related tags found
No related merge requests found
#include <stdint.h>
#include "idt.h"
#include "shared/ide_regs.h"
#include "x86.h"
#include "guest/stdio.h"
#include "shared/ide_regs.h"
#include "gfx/gfx.h"
#include "ide/ide.h"
......@@ -10,6 +11,8 @@
#include "sprite/sprite.h"
#include "console/console.h"
#include "guest/resources/resources.h"
// If PV == 1 => uses paravirtualized drivers (when available)
// If PV == 0 => uses physical (hardware) drivers (when available)
#if PV == 1
......@@ -46,13 +49,13 @@ void guest_main() {
gfx_init(1920, 1080);
// - disk -
char data[SECTOR_SIZE] = "here are my data !\n";
ide_write(0, data);
char ide_data[SECTOR_SIZE] = "here are my data !\n";
ide_write(0, ide_data);
// - sprite -
sprite_init(0, 0x123, 200, 100);
sprite_visibility(0, 1);
sprite_init(0, sprite_tuxjedi, SPRITE_TUXJEDI_WIDTH, SPRITE_TUXJEDI_HEIGHT);
sprite_position(0, 50, 50);
sprite_visibility(0, 1);
halt();
}
......
#ifndef _RESOURCES_H_
#include <stdint.h>
// --- DEFINE ---
#define SPRITE_TUXJEDI_WIDTH 128
#define SPRITE_TUXJEDI_HEIGHT 128
extern uint8_t sprite_tuxjedi[65536];
#endif // !_RESOURCES_H_
Source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -9,13 +9,13 @@
// --- FUNCTION ---
void sprite_pv_init(uint8_t id, uint64_t data, uint32_t width, uint32_t height);
void sprite_pv_init(uint8_t id, uint8_t *data, uint32_t width, uint32_t height);
void sprite_pv_visibility(uint8_t id, uint8_t toggle);
void sprite_pv_position(uint8_t id, uint32_t x, uint32_t y);
void sprite_phys_init(uint8_t id, uint64_t data, uint32_t width, uint32_t height);
void sprite_phys_init(uint8_t id, uint8_t *data, uint32_t width, uint32_t height);
void sprite_phys_visibility(uint8_t id, uint8_t toggle);
......
......@@ -18,7 +18,7 @@
// *(uint32_t *)REG_GFX_INIT_DATA = height;
// }
void sprite_phys_init(uint8_t id, uint64_t data, uint32_t width, uint32_t height) { }
void sprite_phys_init(uint8_t id, uint8_t *data, uint32_t width, uint32_t height) { }
void sprite_phys_visibility(uint8_t id, uint8_t toggle) { }
......
......@@ -3,6 +3,7 @@
#include "guest/utils.h"
#include "guest/pmio.h"
#include "shared/hypercall_params.h"
#include <stdint.h>
// --- DEFINE ---
......@@ -10,11 +11,11 @@
// --- FUNCTION ---
void sprite_pv_init(uint8_t id, uint64_t data, uint32_t width, uint32_t height) {
void sprite_pv_init(uint8_t id, uint8_t *data, uint32_t width, uint32_t height) {
hyper_sprite_init_params_t param_sprite_init;
param_sprite_init.id = id;
param_sprite_init.data = data;
param_sprite_init.data = (uint64_t)((uint32_t)data);
param_sprite_init.width = width;
param_sprite_init.height = height;
memcpy((void *)HYPERCALL_SHARED_ADDR, (void *)&param_sprite_init, sizeof(param_sprite_init));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment