1 #include "precompiled.h" 2 // 3 // Copyright (c) 2013-2014 The ANGLE Project Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style license that can be 5 // found in the LICENSE file. 6 // 7 8 // BufferStorage9.cpp Defines the BufferStorage9 class. 9 10 #include "libGLESv2/renderer/d3d9/BufferStorage9.h" 11 #include "common/debug.h" 12 #include "libGLESv2/main.h" 13 14 namespace rx 15 { 16 17 BufferStorage9::BufferStorage9() 18 : mSize(0) 19 { 20 } 21 22 BufferStorage9::~BufferStorage9() 23 { 24 } 25 26 BufferStorage9 *BufferStorage9::makeBufferStorage9(BufferStorage *bufferStorage) 27 { 28 ASSERT(HAS_DYNAMIC_TYPE(BufferStorage9*, bufferStorage)); 29 return static_cast<BufferStorage9*>(bufferStorage); 30 } 31 32 void *BufferStorage9::getData() 33 { 34 return mMemory.data(); 35 } 36 37 void BufferStorage9::setData(const void* data, size_t size, size_t offset) 38 { 39 if (offset + size > mMemory.size()) 40 { 41 mMemory.resize(offset + size); 42 } 43 44 mSize = std::max(mSize, offset + size); 45 if (data) 46 { 47 memcpy(mMemory.data() + offset, data, size); 48 } 49 } 50 51 void BufferStorage9::copyData(BufferStorage* sourceStorage, size_t size, size_t sourceOffset, size_t destOffset) 52 { 53 BufferStorage9* source = makeBufferStorage9(sourceStorage); 54 if (source) 55 { 56 memcpy(mMemory.data() + destOffset, source->mMemory.data() + sourceOffset, size); 57 } 58 } 59 60 void BufferStorage9::clear() 61 { 62 mSize = 0; 63 } 64 65 void BufferStorage9::markTransformFeedbackUsage() 66 { 67 UNREACHABLE(); 68 } 69 70 size_t BufferStorage9::getSize() const 71 { 72 return mSize; 73 } 74 75 bool BufferStorage9::supportsDirectBinding() const 76 { 77 return false; 78 } 79 80 // We do not suppot buffer mapping facility in D3D9 81 bool BufferStorage9::isMapped() const 82 { 83 UNREACHABLE(); 84 return false; 85 } 86 87 void *BufferStorage9::map(GLbitfield access) 88 { 89 UNREACHABLE(); 90 return NULL; 91 } 92 93 void BufferStorage9::unmap() 94 { 95 UNREACHABLE(); 96 } 97 98 } 99