Size: a a a

2020 April 04

VK

Vladislav Khudziakov in pro.cxx
Александр Караев
что API возвращает? сырой указатель плюс данные? указатель владеющий или нет?
Так, у меня есть загруженные данные текстуры, которые хранятся в uptr и API, которое принимает на вход вектор с байтами, и создает текстуру в GPU.
источник

VK

Vladislav Khudziakov in pro.cxx
API ничего не возвращает, просто принимает на вход свою структуру, часть которой вот этот вектор с байтами
источник

АК

Александр Караев in pro.cxx
кто загружает текстуры? почему они в uptr?
источник

VK

Vladislav Khudziakov in pro.cxx
Александр Караев
кто загружает текстуры? почему они в uptr?
У нас тут несколько API для рендера, я сейчас внедряю еще один. Остальные API используют этот uptr. Загрузка ресурсов происходит из одного места и сохраняется в своей структуре данных. Дальше промежуточные структуры данных интерпретируют общие данные для своего API рендера
источник

VK

Vladislav Khudziakov in pro.cxx
получается, что если поменять этот uptr, придется переписывать код для остальных рендеров
источник

VK

Vladislav Khudziakov in pro.cxx
не хотелось бы, короче
источник

IS

Iskander Saitbatalov in pro.cxx
А нельзя сделать другую последовательность? Создать вектор нужной длины, попробовать подсунуть в эту структуру в качестве вектора .data () его?
источник

VK

Vladislav Khudziakov in pro.cxx
и копировать байты  для каждой текстуры тоже)
источник

IS

Iskander Saitbatalov in pro.cxx
Ааааа... Там ж GPU.
источник

АК

Александр Караев in pro.cxx
надоело гадать без кода - ни семантика владения не ясна, ни требования к использованию самих данных
источник

IS

Iskander Saitbatalov in pro.cxx
В общем последнее мое предложение - после создания структуры, но до заполнения создать вектор с кастомным аллокатором, который будет выделять память ровно в том куске, где структура это сделала.
источник

VK

Vladislav Khudziakov in pro.cxx
Iskander Saitbatalov
В общем последнее мое предложение - после создания структуры, но до заполнения создать вектор с кастомным аллокатором, который будет выделять память ровно в том куске, где структура это сделала.
на какое-то UB походже)
источник

VK

Vladislav Khudziakov in pro.cxx
В общем, если легального способа нет, то придется копировать
источник

VK

Vladislav Khudziakov in pro.cxx
спасибо)
источник

АК

Александр Караев in pro.cxx
Vladislav Khudziakov
В общем, если легального способа нет, то придется копировать
зачем копировать, если можно хранить сам указатель?
источник

AS

Anatoly Shirokov in pro.cxx
Александр Караев
зачем копировать, если можно хранить сам указатель?
я так понял там кривое API, принимающее только вектор
источник

VK

Vladislav Khudziakov in pro.cxx
Anatoly Shirokov
я так понял там кривое API, принимающее только вектор
+
источник

АК

Александр Караев in pro.cxx
Anatoly Shirokov
я так понял там кривое API, принимающее только вектор
одно кривое апи возвращает сырой указатель, а другое принимает вектор..
ясно
источник

AN

Alexander N in pro.cxx
Вектор же гарантирует непрерывность
источник

AN

Alexander N in pro.cxx
Хотя не тоже ub
источник