MCPcopy Create free account
hub / github.com/defold/defold / WriteVertexAttributeFromFloat

Function WriteVertexAttributeFromFloat

engine/graphics/src/graphics_vertices.cpp:67–113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65 }
66
67 uint8_t* WriteVertexAttributeFromFloat(uint8_t* value_write_ptr, float value, dmGraphics::VertexAttribute::DataType data_type)
68 {
69 switch (data_type)
70 {
71 case dmGraphics::VertexAttribute::TYPE_BYTE:
72 {
73 int8_t typed_value = (int8_t) dmMath::Clamp(value, -128.0f, 127.0f);
74 memcpy(value_write_ptr, &typed_value, sizeof(typed_value));
75 return value_write_ptr + 1;
76 }
77 case dmGraphics::VertexAttribute::TYPE_UNSIGNED_BYTE:
78 {
79 uint8_t typed_value = (uint8_t) dmMath::Clamp(value, 0.0f, 255.0f);
80 memcpy(value_write_ptr, &typed_value, sizeof(typed_value));
81 return value_write_ptr + 1;
82 }
83 case dmGraphics::VertexAttribute::TYPE_SHORT:
84 {
85 int16_t typed_value = (int16_t) dmMath::Clamp(value, -32768.0f, 32767.0f);
86 memcpy(value_write_ptr, &typed_value, sizeof(typed_value));
87 return value_write_ptr + 2;
88 }
89 case dmGraphics::VertexAttribute::TYPE_UNSIGNED_SHORT:
90 {
91 uint16_t typed_value = (uint16_t) dmMath::Clamp(value, 0.0f, 65535.0f);
92 memcpy(value_write_ptr, &typed_value, sizeof(typed_value));
93 return value_write_ptr + 2;
94 }
95 case dmGraphics::VertexAttribute::TYPE_INT:
96 {
97 int32_t typed_value = (int32_t) dmMath::Clamp((double) value, -2147483648.0, 2147483647.0);
98 memcpy(value_write_ptr, &typed_value, sizeof(typed_value));
99 return value_write_ptr + 4;
100 }
101 case dmGraphics::VertexAttribute::TYPE_UNSIGNED_INT:
102 {
103 uint32_t typed_value = (uint32_t) dmMath::Clamp((double) value, 0.0, 4294967295.0);
104 memcpy(value_write_ptr, &typed_value, sizeof(typed_value));
105 return value_write_ptr + 4;
106 }
107 case dmGraphics::VertexAttribute::TYPE_FLOAT:
108 memcpy(value_write_ptr, &value, sizeof(value));
109 return value_write_ptr + 4;
110 default:break;
111 }
112 return 0;
113 }
114
115 float VertexAttributeDataTypeToFloat(const dmGraphics::VertexAttribute::DataType data_type, const uint8_t* value_ptr)
116 {

Callers 6

WriteMatrixToMatrixFunction · 0.85
WriteVectorFunction · 0.85
WriteScalarFunction · 0.85
WriteAttributesFunction · 0.85

Calls 1

ClampFunction · 0.50

Tested by

no test coverage detected