Explorar o código

Merge branch 'master' into GLTF2_recursive_references_fix

Max Vollmer (Microsoft Havok) %!s(int64=5) %!d(string=hai) anos
pai
achega
a07bf8b26f
Modificáronse 2 ficheiros con 11 adicións e 6 borrados
  1. 10 5
      code/glTF2/glTF2Asset.inl
  2. 1 1
      samples/SimpleOpenGL/Sample_SimpleOpenGL.c

+ 10 - 5
code/glTF2/glTF2Asset.inl

@@ -515,18 +515,23 @@ inline size_t Buffer::AppendData(uint8_t *data, size_t length) {
 }
 
 inline void Buffer::Grow(size_t amount) {
-    if (amount <= 0) return;
+    if (amount <= 0) {
+        return;
+    }
+    
+    // Capacity is big enough
     if (capacity >= byteLength + amount) {
         byteLength += amount;
         return;
     }
 
-    // Shift operation is standard way to divide integer by 2, it doesn't cast it to float back and forth, also works for odd numbers,
-    // originally it would look like: static_cast<size_t>(capacity * 1.5f)
-    capacity = std::max(capacity + (capacity >> 1), byteLength + amount);
+    // Just allocate data which we need
+    capacity = byteLength + amount;
 
     uint8_t *b = new uint8_t[capacity];
-    if (mData) memcpy(b, mData.get(), byteLength);
+    if (nullptr != mData) {
+        memcpy(b, mData.get(), byteLength);
+    }
     mData.reset(b, std::default_delete<uint8_t[]>());
     byteLength += amount;
 }

+ 1 - 1
samples/SimpleOpenGL/Sample_SimpleOpenGL.c

@@ -245,7 +245,7 @@ void do_motion (void)
 	static int frames = 0;
 
 	int time = glutGet(GLUT_ELAPSED_TIME);
-	angle += (time-prev_time)*0.01;
+	angle += (time-prev_time)*0.01f;
 	prev_time = time;
 
 	frames += 1;