123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- #pragma once
- #include <common/sys/types.h>
- #include <common/glib.h>
- #define SCM_BF_FB (1 << 0)
- #define SCM_BF_DB (1 << 1)
- #define SCM_BF_TEXT (1 << 2)
- #define SCM_BF_PIXEL (1 << 3)
- #define SCM_FRAMWORK_TYPE_TEXT 0
- #define SCM_FRAMWORK_TYPE_GUI 1
- struct scm_buffer_info_t
- {
- uint32_t width;
- uint32_t height;
- uint32_t size;
- uint32_t bit_depth;
- uint64_t vaddr;
- uint64_t flags;
- };
- struct scm_ui_framework_operations_t
- {
- int (*install)(struct scm_buffer_info_t *buf);
- int (*uninstall)(void *args);
- int (*enable)(void *args);
- int (*disable)(void *args);
- int (*change)(struct scm_buffer_info_t *buf);
- };
- struct scm_ui_framework_t
- {
- struct List list;
- uint16_t id;
- char name[16];
- uint8_t type;
- struct scm_ui_framework_operations_t *ui_ops;
- struct scm_buffer_info_t *buf;
- } __attribute__((aligned(sizeof(uint64_t))));
- void scm_init();
- void scm_reinit();
- int scm_register_alloc(const char *name, const uint8_t type, struct scm_ui_framework_operations_t *ops);
- int scm_register(struct scm_ui_framework_t *ui);
- int scm_unregister(struct scm_ui_framework_t *ui);
- int scm_unregister_alloc(struct scm_ui_framework_t *ui);
- int scm_enable_alloc();
- int scm_enable_double_buffer();
- int scm_framework_enable(struct scm_ui_framework_t *ui);
|