134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
# File 'lib/vulkan/pipeline.rb', line 134
def construct_specialization_info(specialization_constants_hash)
specialization_info = nil
if specialization_constants_hash&.any?
specialization_data = ""
specialization_entries = specialization_constants_hash.map do |id, data|
VkSpecializationMapEntry.malloc.tap do |entry|
entry.constantID = id
entry.offset = specialization_data.size
entry.size = data.size
specialization_data << data
end
end
specialization_info = VkSpecializationInfo.malloc
specialization_info.mapEntryCount = specialization_entries.count
specialization_info.pMapEntries = array_of_structures(specialization_entries)
specialization_info.dataSize = specialization_data.size
specialization_info.pData = specialization_data
end
specialization_info
end
|