| 61 | } |
| 62 | |
| 63 | result AlignedFloatBuffer::init(unsigned int aFloats) |
| 64 | { |
| 65 | delete[] mBasePtr; |
| 66 | mBasePtr = 0; |
| 67 | mData = 0; |
| 68 | mFloats = aFloats; |
| 69 | #ifndef SOLOUD_SSE_INTRINSICS |
| 70 | mBasePtr = new unsigned char[aFloats * sizeof(float)]; |
| 71 | if (mBasePtr == NULL) |
| 72 | return OUT_OF_MEMORY; |
| 73 | mData = (float*)mBasePtr; |
| 74 | #else |
| 75 | mBasePtr = new unsigned char[aFloats * sizeof(float) + 16]; |
| 76 | if (mBasePtr == NULL) |
| 77 | return OUT_OF_MEMORY; |
| 78 | mData = (float *)(((size_t)mBasePtr + 15)&~15); |
| 79 | #endif |
| 80 | return SO_NO_ERROR; |
| 81 | } |
| 82 | |
| 83 | void AlignedFloatBuffer::clear() |
| 84 | { |
no test coverage detected