1dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com 2dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com/* 3dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com * Copyright 2012 Google Inc. 4dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com * 5dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com * Use of this source code is governed by a BSD-style license that can be 6dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com * found in the LICENSE file. 7dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com */ 8dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com 9dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com#include "GrBufferObj.h" 100dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com 11ae6b777ba6d37b5330cdadc15ccff796fe172ca2robertphillips@google.comvoid GrBufferObj::allocate(GrGLsizeiptr size, const GrGLchar *dataPtr) { 120dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com GrAlwaysAssert(size >= 0); 130dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com 140dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com // delete pre-existing data 150dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com delete[] fDataPtr; 160dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com 170dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com fSize = size; 180dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com fDataPtr = new GrGLchar[size]; 190dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com if (dataPtr) { 200dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com memcpy(fDataPtr, dataPtr, fSize); 210dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com } 220dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com // TODO: w/ no dataPtr the data is unitialized - this could be tracked 230dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com} 240dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com 250dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.comvoid GrBufferObj::deleteAction() { 260dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com 270dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com // buffers are automatically unmapped when deleted 280dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com this->resetMapped(); 290dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com 300dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com this->INHERITED::deleteAction(); 310dd84a399ae8903784eac1c361c08449f822307frobertphillips@google.com} 32