1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc. 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 6ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com */ 7ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com 8ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com#include "GrGLVertexBuffer.h" 939edf7664f50b6c890b933b5bbed67a8735b349bjvanverth#include "GrGLGpu.h" 10ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com 11861e1037017bbb7ac52ec5ebecab3a636a82a3e8bsalomonGrGLVertexBuffer::GrGLVertexBuffer(GrGLGpu* gpu, const Desc& desc) 125236cf480daf82b2f36e42795abdbbc915533a59bsalomon : INHERITED(gpu, desc.fSizeInBytes, desc.fDynamic, 0 == desc.fID) 13e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.com , fImpl(gpu, desc, GR_GL_ARRAY_BUFFER) { 14169612621f00b3fe9f71014079991287d311751absalomon this->registerWithCache(); 15ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com} 16ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com 178fe72477f204b1a45393e6a64caa84fd287b805bbsalomon@google.comvoid GrGLVertexBuffer::onRelease() { 18089a780c3355129eefc942246534bc1f126b8ccbcommit-bot@chromium.org if (!this->wasDestroyed()) { 19e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.com fImpl.release(this->getGpuGL()); 20ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com } 21d364554bcfd391c3b6111af8bff963a35ab87ba7robertphillips@google.com 22d364554bcfd391c3b6111af8bff963a35ab87ba7robertphillips@google.com INHERITED::onRelease(); 23ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com} 24ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com 25e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.comvoid GrGLVertexBuffer::onAbandon() { 26e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.com fImpl.abandon(); 27d364554bcfd391c3b6111af8bff963a35ab87ba7robertphillips@google.com INHERITED::onAbandon(); 288fe72477f204b1a45393e6a64caa84fd287b805bbsalomon@google.com} 298fe72477f204b1a45393e6a64caa84fd287b805bbsalomon@google.com 30e529a61dd416e454bd858ef948aa49f5b4e02b80commit-bot@chromium.orgvoid* GrGLVertexBuffer::onMap() { 31089a780c3355129eefc942246534bc1f126b8ccbcommit-bot@chromium.org if (!this->wasDestroyed()) { 328341eb76fbc54593e873f5589961e02793e7f15fcommit-bot@chromium.org return fImpl.map(this->getGpuGL()); 33e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.com } else { 34e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.com return NULL; 35ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com } 36ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com} 37ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com 38e529a61dd416e454bd858ef948aa49f5b4e02b80commit-bot@chromium.orgvoid GrGLVertexBuffer::onUnmap() { 39089a780c3355129eefc942246534bc1f126b8ccbcommit-bot@chromium.org if (!this->wasDestroyed()) { 408341eb76fbc54593e873f5589961e02793e7f15fcommit-bot@chromium.org fImpl.unmap(this->getGpuGL()); 41e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.com } 42ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com} 43ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com 44e529a61dd416e454bd858ef948aa49f5b4e02b80commit-bot@chromium.orgbool GrGLVertexBuffer::onUpdateData(const void* src, size_t srcSizeInBytes) { 45089a780c3355129eefc942246534bc1f126b8ccbcommit-bot@chromium.org if (!this->wasDestroyed()) { 46e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.com return fImpl.updateData(this->getGpuGL(), src, srcSizeInBytes); 471c13c9668a889e56a0c85b51b9f28139c25b76ffbsalomon@google.com } else { 48e49ad45404adf43c585bdf625ce05e2d61c28e9fbsalomon@google.com return false; 491c13c9668a889e56a0c85b51b9f28139c25b76ffbsalomon@google.com } 50ac10a2d039c5d52eed66e27cbbc503ab523c1cd5reed@google.com} 51