mirror of https://gitlab.com/nakst/essence
pass _EsApplicationStartupInformation in x11 backend
This commit is contained in:
parent
5409c01518
commit
48aa9b261d
|
@ -502,6 +502,7 @@ uint8_t *ApplicationStartupInformationToBuffer(const _EsApplicationStartupInform
|
||||||
_EsApplicationStartupInformation *ApplicationStartupInformationParse(const void *data, size_t dataBytes) {
|
_EsApplicationStartupInformation *ApplicationStartupInformationParse(const void *data, size_t dataBytes) {
|
||||||
EsBuffer buffer = { .in = (const uint8_t *) data, .bytes = dataBytes };
|
EsBuffer buffer = { .in = (const uint8_t *) data, .bytes = dataBytes };
|
||||||
_EsApplicationStartupInformation *startupInformation = (_EsApplicationStartupInformation *) EsBufferRead(&buffer, sizeof(_EsApplicationStartupInformation));
|
_EsApplicationStartupInformation *startupInformation = (_EsApplicationStartupInformation *) EsBufferRead(&buffer, sizeof(_EsApplicationStartupInformation));
|
||||||
|
if (!startupInformation) return nullptr;
|
||||||
startupInformation->filePath = (char *) EsHeapAllocate(startupInformation->filePathBytes, false);
|
startupInformation->filePath = (char *) EsHeapAllocate(startupInformation->filePathBytes, false);
|
||||||
EsBufferReadInto(&buffer, (char *) startupInformation->filePath, startupInformation->filePathBytes);
|
EsBufferReadInto(&buffer, (char *) startupInformation->filePath, startupInformation->filePathBytes);
|
||||||
startupInformation->containingFolder = (char *) EsHeapAllocate(startupInformation->containingFolderBytes, false);
|
startupInformation->containingFolder = (char *) EsHeapAllocate(startupInformation->containingFolderBytes, false);
|
||||||
|
|
|
@ -929,10 +929,20 @@ void *UIThread(void *) {
|
||||||
XNFocusWindow, window->window, NULL);
|
XNFocusWindow, window->window, NULL);
|
||||||
windows.Add(window);
|
windows.Add(window);
|
||||||
|
|
||||||
|
_EsApplicationStartupInformation applicationStartupInformation = {};
|
||||||
|
|
||||||
|
SharedMemoryRegion *createInstanceData = (SharedMemoryRegion *) EsHeapAllocate(sizeof(SharedMemoryRegion), true);
|
||||||
|
createInstanceData->type = OBJECT_SHMEM;
|
||||||
|
createInstanceData->referenceCount = 1;
|
||||||
|
createInstanceData->pointer = EsHeapAllocate(sizeof(applicationStartupInformation) + 1, true);
|
||||||
|
createInstanceData->bytes = sizeof(applicationStartupInformation) + 1;
|
||||||
|
EsMemoryCopy((uint8_t *) createInstanceData->pointer + 1, &applicationStartupInformation, sizeof(applicationStartupInformation));
|
||||||
|
|
||||||
_EsMessageWithObject m = {};
|
_EsMessageWithObject m = {};
|
||||||
m.message.type = ES_MSG_INSTANCE_CREATE;
|
m.message.type = ES_MSG_INSTANCE_CREATE;
|
||||||
m.message.createInstance.window = HandleOpen(window);
|
m.message.createInstance.window = HandleOpen(window);
|
||||||
// TODO _EsApplicationStartupInformation.
|
m.message.createInstance.data = HandleOpen(createInstanceData);
|
||||||
|
m.message.createInstance.dataBytes = createInstanceData->bytes;
|
||||||
MessagePost(&m);
|
MessagePost(&m);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -1079,7 +1089,7 @@ int main() {
|
||||||
|
|
||||||
SharedMemoryRegion *globalDataRegion = (SharedMemoryRegion *) EsHeapAllocate(sizeof(SharedMemoryRegion), true);
|
SharedMemoryRegion *globalDataRegion = (SharedMemoryRegion *) EsHeapAllocate(sizeof(SharedMemoryRegion), true);
|
||||||
globalDataRegion->type = OBJECT_SHMEM;
|
globalDataRegion->type = OBJECT_SHMEM;
|
||||||
globalDataRegion->referenceCount = 1;
|
globalDataRegion->referenceCount = 2;
|
||||||
globalDataRegion->pointer = &globalData;
|
globalDataRegion->pointer = &globalData;
|
||||||
globalDataRegion->bytes = sizeof(globalData);
|
globalDataRegion->bytes = sizeof(globalData);
|
||||||
|
|
||||||
|
@ -1094,7 +1104,7 @@ int main() {
|
||||||
|
|
||||||
SharedMemoryRegion *startupData = (SharedMemoryRegion *) EsHeapAllocate(sizeof(SharedMemoryRegion), true);
|
SharedMemoryRegion *startupData = (SharedMemoryRegion *) EsHeapAllocate(sizeof(SharedMemoryRegion), true);
|
||||||
startupData->type = OBJECT_SHMEM;
|
startupData->type = OBJECT_SHMEM;
|
||||||
startupData->referenceCount = 1;
|
startupData->referenceCount = 2;
|
||||||
startupData->bytes = sizeof(SystemStartupDataHeader) + sizeof(EsMountPoint) * 2;
|
startupData->bytes = sizeof(SystemStartupDataHeader) + sizeof(EsMountPoint) * 2;
|
||||||
startupData->pointer = EsHeapAllocate(startupData->bytes, true);
|
startupData->pointer = EsHeapAllocate(startupData->bytes, true);
|
||||||
SystemStartupDataHeader *startupHeader = (SystemStartupDataHeader *) startupData->pointer;
|
SystemStartupDataHeader *startupHeader = (SystemStartupDataHeader *) startupData->pointer;
|
||||||
|
|
Loading…
Reference in New Issue