mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-02-04 17:25:14 +01:00
75 lines
2.5 KiB
Text
75 lines
2.5 KiB
Text
#define gameframe_init_native
|
|
//#init gameframe_init_native
|
|
gameframe_init_raw();
|
|
|
|
#define gameframe_get_monitors
|
|
var _list = argument_count > 0 ? argument[0] : undefined;
|
|
var _count = gameframe_get_monitors_1();
|
|
var _buf = gameframe_prepare_buffer(_count * (4*4 + 4*4 + 4));
|
|
if (!gameframe_get_monitors_2(buffer_get_address(_buf)))
|
|
return _list == undefined ? array_create(0) : 0;
|
|
var _array;
|
|
var _use_array = _list == undefined;
|
|
if (_use_array) _array = array_create(_count);
|
|
buffer_seek(_buf, buffer_seek_start, 0);
|
|
for (var _ind = 0; _ind < _count; _ind++) {
|
|
var _item, _mntr, _work;
|
|
if (_use_array) {
|
|
_mntr = array_create(4);
|
|
_work = array_create(4);
|
|
_item = [_mntr, _work, 0];
|
|
_array[_ind] = _item;
|
|
} else {
|
|
_item = _list[|_ind];
|
|
if (_item == undefined) {
|
|
_mntr = array_create(4);
|
|
_work = array_create(4);
|
|
_item = [_mntr, _work, 0];
|
|
_list[|_ind] = _item;
|
|
} else {
|
|
_mntr = _item[0];
|
|
_work = _item[1];
|
|
}
|
|
}
|
|
_mntr[@0] = buffer_read(_buf, buffer_s32);
|
|
_mntr[@1] = buffer_read(_buf, buffer_s32);
|
|
_mntr[@2] = buffer_read(_buf, buffer_s32);
|
|
_mntr[@3] = buffer_read(_buf, buffer_s32);
|
|
|
|
_work[@0] = buffer_read(_buf, buffer_s32);
|
|
_work[@1] = buffer_read(_buf, buffer_s32);
|
|
_work[@2] = buffer_read(_buf, buffer_s32);
|
|
_work[@3] = buffer_read(_buf, buffer_s32);
|
|
|
|
_item[@2] = buffer_read(_buf, buffer_s32);
|
|
}
|
|
return _use_array ? _array : _count;
|
|
|
|
#define gameframe_prepare_buffer
|
|
var _size = argument0;
|
|
gml_pragma("global", "global.__gameframe_buffer = undefined");
|
|
var _buf = global.__gameframe_buffer;
|
|
if (_buf == undefined) {
|
|
_buf = buffer_create(_size, buffer_grow, 1);
|
|
global.__gameframe_buffer = _buf;
|
|
} else if (buffer_get_size(_buf) < _size) {
|
|
buffer_resize(_buf, _size);
|
|
}
|
|
buffer_seek(_buf, buffer_seek_start, 0);
|
|
return _buf;
|
|
|
|
#define gameframe_buffer_read_chars
|
|
var _buf = argument0, _len = argument1;
|
|
gml_pragma("global", "global.__ggpo_string_buffer = undefined");
|
|
var _tmp = global.__ggpo_string_buffer;
|
|
if (_tmp == undefined) {
|
|
_tmp = buffer_create(_len + 1, buffer_grow, 1);
|
|
global.__ggpo_string_buffer = _tmp;
|
|
} else if (buffer_get_size(_tmp) <= _len) {
|
|
buffer_resize(_tmp, _len + 1);
|
|
}
|
|
buffer_copy(_buf, buffer_tell(_buf), _len, _tmp, 0);
|
|
buffer_seek(_buf, buffer_seek_relative, _len);
|
|
buffer_poke(_tmp, _len, buffer_u8, 0);
|
|
buffer_seek(_tmp, buffer_seek_start, 0);
|
|
return buffer_read(_tmp, buffer_string);
|