Hash :
ef9d63ec
Author :
Date :
2014-08-04T10:48:02
Move the index range cache to gl::Buffer. Because we want to move all validation to the API layer, we need to move the index validation to the API layer. This means exposing the index cache to the validation layer. In the future we will probably want a way to skip index validation when it's not necessary, or the chosen back-end handles index validation on its own. BUG=angle:571 Change-Id: Iee1618e669bc28abf7e0709ca4a03b4727b1383e Reviewed-on: https://chromium-review.googlesource.com/210646 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
//
// Copyright 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// BufferImpl.h: Defines the abstract rx::BufferImpl class.
#ifndef LIBGLESV2_RENDERER_BUFFERD3D_H_
#define LIBGLESV2_RENDERER_BUFFERD3D_H_
#include "libGLESv2/renderer/BufferImpl.h"
#include "libGLESv2/angletypes.h"
namespace rx
{
class Renderer;
class StaticIndexBufferInterface;
class StaticVertexBufferInterface;
class BufferD3D : public BufferImpl
{
public:
BufferD3D();
virtual ~BufferD3D();
static BufferD3D *makeBufferD3D(BufferImpl *buffer);
unsigned int getSerial() const { return mSerial; }
virtual size_t getSize() const = 0;
virtual bool supportsDirectBinding() const = 0;
virtual Renderer* getRenderer() = 0;
rx::StaticVertexBufferInterface *getStaticVertexBuffer() { return mStaticVertexBuffer; }
rx::StaticIndexBufferInterface *getStaticIndexBuffer() { return mStaticIndexBuffer; }
void initializeStaticData();
void invalidateStaticData();
void promoteStaticUsage(int dataSize);
protected:
unsigned int mSerial;
static unsigned int mNextSerial;
void updateSerial();
rx::StaticVertexBufferInterface *mStaticVertexBuffer;
rx::StaticIndexBufferInterface *mStaticIndexBuffer;
unsigned int mUnmodifiedDataUse;
};
}
#endif // LIBGLESV2_RENDERER_BUFFERIMPLD3D_H_