Fix build with libc++, which follows recent changes to the specification of std::variant, disallowing certain implicit conversions during initialization.
PiperOrigin-RevId: 257683060
This commit is contained in:
parent
75ba861345
commit
7c41671882
@ -85,8 +85,7 @@ inline const ObjectData* GetData(const Object& object) {
|
||||
inline size_t ByteSizeOf(const Object& object);
|
||||
|
||||
// @return object that references an object created externally.
|
||||
template <typename SizeT>
|
||||
inline Object MakeObjectRef(ObjectRef unique_id, const SizeT& size,
|
||||
inline Object MakeObjectRef(ObjectRef unique_id, const ObjectSize& size,
|
||||
AccessType access_type) {
|
||||
return Object{access_type, DataType::FLOAT32, ObjectType::UNKNOWN, 0,
|
||||
size, unique_id};
|
||||
@ -122,8 +121,8 @@ inline size_t ByteSizeOf(const Object& object) {
|
||||
return SizeOf(object.data_type) * /* vec4 */ 4 * NumElements(object.size);
|
||||
}
|
||||
|
||||
template <typename SizeT>
|
||||
Object MakeReadonlyObject(const SizeT& size, const std::vector<float>& data) {
|
||||
inline Object MakeReadonlyObject(const ObjectSize& size,
|
||||
const std::vector<float>& data) {
|
||||
return Object{AccessType::READ,
|
||||
DataType::FLOAT32,
|
||||
ObjectType::UNKNOWN,
|
||||
@ -132,8 +131,8 @@ Object MakeReadonlyObject(const SizeT& size, const std::vector<float>& data) {
|
||||
internal_object::ToBytesVector(data, 16)};
|
||||
}
|
||||
|
||||
template <typename SizeT>
|
||||
Object MakeReadonlyTexture(const SizeT& size, const std::vector<float>& data) {
|
||||
inline Object MakeReadonlyTexture(const ObjectSize& size,
|
||||
const std::vector<float>& data) {
|
||||
return Object{AccessType::READ,
|
||||
DataType::FLOAT32,
|
||||
ObjectType::TEXTURE,
|
||||
@ -142,8 +141,8 @@ Object MakeReadonlyTexture(const SizeT& size, const std::vector<float>& data) {
|
||||
internal_object::ToBytesVector(data, 16)};
|
||||
}
|
||||
|
||||
template <typename SizeT>
|
||||
Object MakeReadonlyBuffer(const SizeT& size, const std::vector<float>& data) {
|
||||
inline Object MakeReadonlyBuffer(const ObjectSize& size,
|
||||
const std::vector<float>& data) {
|
||||
return Object{AccessType::READ,
|
||||
DataType::FLOAT32,
|
||||
ObjectType::BUFFER,
|
||||
@ -153,15 +152,18 @@ Object MakeReadonlyBuffer(const SizeT& size, const std::vector<float>& data) {
|
||||
}
|
||||
|
||||
inline Object MakeReadonlyObject(const std::vector<float>& data) {
|
||||
return MakeReadonlyObject(IntegralDivideRoundUp(data.size(), 4U), data);
|
||||
return MakeReadonlyObject(
|
||||
IntegralDivideRoundUp(static_cast<uint32_t>(data.size()), 4U), data);
|
||||
}
|
||||
|
||||
inline Object MakeReadonlyTexture(const std::vector<float>& data) {
|
||||
return MakeReadonlyTexture(IntegralDivideRoundUp(data.size(), 4U), data);
|
||||
return MakeReadonlyTexture(
|
||||
IntegralDivideRoundUp(static_cast<uint32_t>(data.size()), 4U), data);
|
||||
}
|
||||
|
||||
inline Object MakeReadonlyBuffer(const std::vector<float>& data) {
|
||||
return MakeReadonlyBuffer(IntegralDivideRoundUp(data.size(), 4U), data);
|
||||
return MakeReadonlyBuffer(
|
||||
IntegralDivideRoundUp(static_cast<uint32_t>(data.size()), 4U), data);
|
||||
}
|
||||
|
||||
// TODO(akulik): find better place for functions below.
|
||||
|
@ -543,7 +543,8 @@ Status Runtime::AssignInternalObjects(std::vector<Object>* shared_objects) {
|
||||
shared_object.object = shared_ref;
|
||||
if (shared_object.object_type == ObjectType::BUFFER) {
|
||||
// Make a buffer linear.
|
||||
shared_object.size = NumElements(object.size);
|
||||
shared_object.size =
|
||||
static_cast<uint32_t>(NumElements(object.size));
|
||||
}
|
||||
shared_objects->push_back(std::move(shared_object));
|
||||
is_used_shared_object.push_back(false);
|
||||
@ -552,8 +553,8 @@ Status Runtime::AssignInternalObjects(std::vector<Object>* shared_objects) {
|
||||
Object& shared_object = (*shared_objects)[shared_ref];
|
||||
switch (object.object_type) {
|
||||
case ObjectType::BUFFER:
|
||||
shared_object.size = std::max(NumElements(object.size),
|
||||
NumElements(shared_object.size));
|
||||
shared_object.size = std::max<uint32_t>(
|
||||
NumElements(object.size), NumElements(shared_object.size));
|
||||
break;
|
||||
case ObjectType::TEXTURE: {
|
||||
if (!FitSize(object.size, shared_object.size,
|
||||
|
Loading…
Reference in New Issue
Block a user