Как известно, у SDL_RWops
есть какие-либо преимущества по сравнению с std::fstream
при работе с файлами ввода-вывода? Могу ли я использовать std::fstream
, потому что я больше знаком с ним?Можем ли мы использовать std :: fstream вместо SDL_RWops в SDL2?
ответ
Читая их документации, вы можете обнаружить, что std::fstream
является:
Входной/выходной поток класс для работы с файлами.
С другой стороны, SDL_RWops
нечто большее:
SDL_RWops является абстракцией над I/O. Он предоставляет интерфейсы для чтения, записи и поиска данных в потоке, без вызова вызывающего абонента, который должен знать, откуда поступают данные.
Например, RWops может быть загружен буфером памяти или файлом на диске или соединением с веб-сервером без каких-либо изменений в том, как вызывающий абонент использует данные.
Довольно абстракция.
Итак, вы можете использовать std::fstream
вместо SDL_RWops
для своих файлов? Абсолютно, если вы чувствуете себя более уверенно, пойдите с ним. Последнее является полезной абстракцией над любым видом потока в вашей игре, поэтому преимущество - это нечто, кроме чтения файла.
SDL_RWops может быть реализован для многих типов потоков данных. Стандартные SDL предоставляют SDL_RWFromFile
и SDL_RWFromMem
, тогда как другие библиотеки, такие как physfs, обеспечивают реализацию RWops для многих поддерживаемых типов архивов.
Главное преимущество RWops заключается в том, что все библиотеки SDL-семейства (SDL_image, SDL_mixer, ...) поддерживают загрузку из RWops, поэтому вы можете легко подать свой собственный источник данных (например, ваш формат архива или, возможно, даже сетевой источник) им. Помимо этого, это может быть или не быть хорошим для вашего кода, в зависимости от ваших потребностей.
- 1. Можем ли мы использовать фильтр вместо сервлета?
- 2. Можем ли мы использовать Response.Flush() вместо Response.End()
- 3. Чтение SDL_RWops из std :: istream
- 4. Почему мы используем «using namespace std»? Можем ли мы использовать #include <conio.h> вместо этого?
- 5. Что мы можем использовать вместо nstimer?
- 6. Можем ли мы использовать httpd.conf вместо .htaccess для чистого URL?
- 7. Можем ли мы использовать пиксели вместо техник, как word2vec?
- 8. Можем ли мы использовать абстрактный класс вместо интерфейса
- 9. Можем ли мы использовать https вместо http с networkimageview.setImageUrl?
- 10. Можем ли мы использовать Mattermost с Docker вместо Slack?
- 11. Можем ли мы использовать <body> вместо #container div?
- 12. Можем ли мы использовать `const` вместо` let` всюду?
- 13. Можем ли мы использовать функцию scrollTo() вместо функции анимации?
- 14. Можем ли мы использовать поле данных sql вместо имени столбца?
- 15. Почему std :: fstream возвращает void вместо bool
- 16. Почему SDL_RWops так плохо работает при записи в файл по сравнению с cstdio и std :: fstream?
- 17. Можем ли мы использовать CoreAnimation в Cocos2d?
- 18. Можем ли мы использовать CASE в BETWEEN
- 19. Можем ли мы использовать dhtmlxscheduler в asp.net?
- 20. Можем ли мы использовать '\ n' в сборке?
- 21. Можем ли мы использовать GIF в WKImageView?
- 22. Можем ли мы использовать JSTL в ReactJS?
- 23. Можем ли мы использовать макет в Customview?
- 24. Можем ли мы использовать Бурбон в Grails?
- 25. Можем ли мы использовать планировщики в JavaScript
- 26. Можем ли мы использовать? оператор в sql
- 27. Можем ли мы использовать javascript в C#?
- 28. Можем ли мы использовать NSFileManager в iphone?
- 29. Можем ли мы использовать «#elif!» в c?
- 30. Можем ли мы использовать & в url?