LINUX.ORG.RU

char * data представить как FILE * file возможно ли?

 , , , ,


1

2

Ух, работа кипит, продолжая внедрять и внедрять кучу всяких мелочей в форк Corange захотелось остановится, стабилизировать его и сделать порт на первоначально android и может быть потом на Emscripten -> webassembly (уже предвкушаю как мой пукан будет бомбить от переноса OpenGL кода, ну да ладно). И если на нормальных хостах с загрузкой ресурсов всё ок, то на мобилке хотелось бы грузить ресурсы блобом и тут подумалось, а можно ли блок данных char * представить как FILE * stream ? да так что бы…


//получаем блок данных из блоба
char * data = blob_get_data(blob->data,"./facepalm.tga");
if(data != NULL)
{
    magic_char_to_file_register(data,"./facepalm.tga");
};

//где то далеко в кишках всё прозрачно загружается
//без каких либо изменений при реальном не существовании файла 
FILE * image_tga = fopen("./facepalm.tga","r");

То есть как то указать что данный блок данных это file stream, в таком случае не нужно будет до/переписывать код загрузки ресурсов. Мне кажется это довольно сильной шизофренией… но вдруг

Deleted

Придется писать обертки для основных i/o.

anonymous
()
Ответ на: комментарий от i-rinat

Ух ты ёбушки воробушки, ай-ринатушка спасибо, хоть gccцизм и всё равно придётся покумекать собёртками, но кажется это то что нужно.

Deleted
()
Ответ на: комментарий от i-rinat

Каюсь, обознался, мне в интернетах наврали. В любом случае ещё раз спасибо

Deleted
()

я только одного не пойму, автор позиционирует движок как испытательный полигон для всяких экспериментов, для чего его переносить на андроид?

eagleivg ★★★★★
()

то на мобилке хотелось бы грузить ресурсы блобом

Не до конца понимаю. Почему нельзя конвертнуть ".tga" в ".xpm" и вставить непосредственно в код? Будет один exe-шник с вшитыми ресурсами.

Deleted
()

Ну tga тащить довольно бредово, этот формат для сканов и скриншотов норм ещё, но в играх?

anonymous
()
Ответ на: комментарий от eagleivg

https://imgur.com/C4KlLUg у меня на него большие планы, я не нём игру делаю, ну и перенос на ещё одну платформу вполне себе эксперимент

P.S. Я там к слову Даниэлю к основной репе Corange демку добавил с parallax map. запули себе если надо

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Зачем? Я имею в виду внешний blob файл,а если вшивать то можно просто взять bucket структуру в которой хрянятся загруженные ассеты и переграть их в С код скомпилив потом их вместе с библиотекой, или просто перегнать данные в char * блоки. Но xmp хранить как текстуру такое себе, как и tga, но tga нужен лишь для более удобных правок потом всё лучше перегонять в dds. а меши вообще хранить в vbo опять же в виде блобов, там всё это есть. Суть вообще в том что бы без сильных изменений основного кода сделать возможность указывать пути файлов как их идентификаторы, а то что этих файлов нет в природе уже не важно было, что бы была возможность прозрачно загружать перезагружать ассеты вне зависимости от того на диске они как файлы, части блоба загруженного заранее в память или статичные данные в копилированные как в библиотеку так и в само приложение итоговое, переключатся между режимами откуда брать ресурсы и всё такое.

Deleted
()
Ответ на: комментарий от anonymous

есть поддержка ddsсов, с этим проблем нет, но в некоторых случаях есть артефакты, в дополнение опять же во время разработки/правки удобнее tga. Итоговые текстуры можно просто перегнать через convert в аппаратно дружественные форматы. А тут просто пример, чё придрался ))

Deleted
()

Нужно написать ресурс менеджер который будет все загружать из файла если надо или возвращать закэшированное.

invy ★★★★★
()
Ответ на: комментарий от invy

Это уже написано , вопрос был про «виртуальные» файлы, если так можно выразиться, то есть когда они просто куски данных прямо вшиты или из внешнего блоба. Суть ещё в том что бы это было написано так что бы при надобности могло быть выпилено без переписывания всего что связанно с файлами. Но мир не идеален конечно, что-то компромиссное надо придумать.

Deleted
()
Ответ на: комментарий от Deleted

Нет ты не понял. fopen и FILE вообще нельзя использовать. Это все должно быть абстрагированно.

invy ★★★★★
()

ультраубервещества

Не ставь пожалуйста этот тег рядом со своей сишечкой. Сишечка – это про некрофилию и мазохизм, а не про вещества.

Stil ★★★★★
()
Ответ на: комментарий от Stil

Сишечка – это про некрофилию и мазохизм, а не про вещества.

Упоротые тоже могут в сишечку

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.