196a5c4c7bab6718524de7253da8309143ab48befChris Craik/*
296a5c4c7bab6718524de7253da8309143ab48befChris Craik * Copyright (C) 2015 The Android Open Source Project
396a5c4c7bab6718524de7253da8309143ab48befChris Craik *
496a5c4c7bab6718524de7253da8309143ab48befChris Craik * Licensed under the Apache License, Version 2.0 (the "License");
596a5c4c7bab6718524de7253da8309143ab48befChris Craik * you may not use this file except in compliance with the License.
696a5c4c7bab6718524de7253da8309143ab48befChris Craik * You may obtain a copy of the License at
796a5c4c7bab6718524de7253da8309143ab48befChris Craik *
896a5c4c7bab6718524de7253da8309143ab48befChris Craik *      http://www.apache.org/licenses/LICENSE-2.0
996a5c4c7bab6718524de7253da8309143ab48befChris Craik *
1096a5c4c7bab6718524de7253da8309143ab48befChris Craik * Unless required by applicable law or agreed to in writing, software
1196a5c4c7bab6718524de7253da8309143ab48befChris Craik * distributed under the License is distributed on an "AS IS" BASIS,
1296a5c4c7bab6718524de7253da8309143ab48befChris Craik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1396a5c4c7bab6718524de7253da8309143ab48befChris Craik * See the License for the specific language governing permissions and
1496a5c4c7bab6718524de7253da8309143ab48befChris Craik * limitations under the License.
1596a5c4c7bab6718524de7253da8309143ab48befChris Craik */
1696a5c4c7bab6718524de7253da8309143ab48befChris Craik#include "renderstate/PixelBufferState.h"
1796a5c4c7bab6718524de7253da8309143ab48befChris Craik
1896a5c4c7bab6718524de7253da8309143ab48befChris Craiknamespace android {
1996a5c4c7bab6718524de7253da8309143ab48befChris Craiknamespace uirenderer {
2096a5c4c7bab6718524de7253da8309143ab48befChris Craik
2196a5c4c7bab6718524de7253da8309143ab48befChris CraikPixelBufferState::PixelBufferState()
2296a5c4c7bab6718524de7253da8309143ab48befChris Craik        : mCurrentPixelBuffer(0) {
2396a5c4c7bab6718524de7253da8309143ab48befChris Craik}
2496a5c4c7bab6718524de7253da8309143ab48befChris Craik
2596a5c4c7bab6718524de7253da8309143ab48befChris Craikbool PixelBufferState::bind(GLuint buffer) {
2696a5c4c7bab6718524de7253da8309143ab48befChris Craik    if (mCurrentPixelBuffer != buffer) {
2796a5c4c7bab6718524de7253da8309143ab48befChris Craik        glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffer);
2896a5c4c7bab6718524de7253da8309143ab48befChris Craik        mCurrentPixelBuffer = buffer;
2996a5c4c7bab6718524de7253da8309143ab48befChris Craik        return true;
3096a5c4c7bab6718524de7253da8309143ab48befChris Craik    }
3196a5c4c7bab6718524de7253da8309143ab48befChris Craik    return false;
3296a5c4c7bab6718524de7253da8309143ab48befChris Craik}
3396a5c4c7bab6718524de7253da8309143ab48befChris Craik
3496a5c4c7bab6718524de7253da8309143ab48befChris Craikbool PixelBufferState::unbind() {
3596a5c4c7bab6718524de7253da8309143ab48befChris Craik    if (mCurrentPixelBuffer) {
3696a5c4c7bab6718524de7253da8309143ab48befChris Craik        glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0);
3796a5c4c7bab6718524de7253da8309143ab48befChris Craik        mCurrentPixelBuffer = 0;
3896a5c4c7bab6718524de7253da8309143ab48befChris Craik        return true;
3996a5c4c7bab6718524de7253da8309143ab48befChris Craik    }
4096a5c4c7bab6718524de7253da8309143ab48befChris Craik    return false;
4196a5c4c7bab6718524de7253da8309143ab48befChris Craik}
4296a5c4c7bab6718524de7253da8309143ab48befChris Craik
4396a5c4c7bab6718524de7253da8309143ab48befChris Craik} /* namespace uirenderer */
4496a5c4c7bab6718524de7253da8309143ab48befChris Craik} /* namespace android */
4596a5c4c7bab6718524de7253da8309143ab48befChris Craik
46