Home | History | Annotate | Download | only in d3d9
      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