13f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com
23f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com/*
33f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com * Copyright 2010 Google Inc.
43f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com *
53f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com * Use of this source code is governed by a BSD-style license that can be
63f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com * found in the LICENSE file.
73f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com */
83f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com
93f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com
103f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com
113f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com#ifndef GrIndexBuffer_DEFINED
123f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com#define GrIndexBuffer_DEFINED
133f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com
143f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com#include "GrGeometryBuffer.h"
153f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com
163f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.comclass GrIndexBuffer : public GrGeometryBuffer {
173f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.compublic:
1855dcfe8e57a379c114d711fb5e7fc740d837e76bbsalomon@google.com    /**
1955dcfe8e57a379c114d711fb5e7fc740d837e76bbsalomon@google.com     * Retrieves the maximum number of quads that could be rendered
2055dcfe8e57a379c114d711fb5e7fc740d837e76bbsalomon@google.com     * from the index buffer (using kTriangles_GrPrimitiveType).
2155dcfe8e57a379c114d711fb5e7fc740d837e76bbsalomon@google.com     * @return the maximum number of quads using full size of index buffer.
2255dcfe8e57a379c114d711fb5e7fc740d837e76bbsalomon@google.com     */
2355dcfe8e57a379c114d711fb5e7fc740d837e76bbsalomon@google.com    int maxQuads() const {
2455dcfe8e57a379c114d711fb5e7fc740d837e76bbsalomon@google.com        return this->sizeInBytes() / (sizeof(uint16_t) * 6);
2555dcfe8e57a379c114d711fb5e7fc740d837e76bbsalomon@google.com    }
263f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.comprotected:
27407c7876a1c8fba9e582a3e48e12ca63e13d99febsalomon@google.com    GrIndexBuffer(GrGpu* gpu, bool isWrapped, size_t sizeInBytes, bool dynamic, bool cpuBacked)
28407c7876a1c8fba9e582a3e48e12ca63e13d99febsalomon@google.com        : INHERITED(gpu, isWrapped, sizeInBytes, dynamic, cpuBacked) {}
293f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.comprivate:
303f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com    typedef GrGeometryBuffer INHERITED;
313f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com};
323f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com
333f30e3a41fc16816105e28e0d4c241eff6d391b4bsalomon@google.com#endif
34