156513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall/*
256513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* Copyright (C) 2011 The Android Open Source Project
356513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall*
456513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* Licensed under the Apache License, Version 2.0 (the "License");
556513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* you may not use this file except in compliance with the License.
656513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* You may obtain a copy of the License at
756513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall*
856513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* http://www.apache.org/licenses/LICENSE-2.0
956513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall*
1056513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* Unless required by applicable law or agreed to in writing, software
1156513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* distributed under the License is distributed on an "AS IS" BASIS,
1256513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1356513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* See the License for the specific language governing permissions and
1456513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall* limitations under the License.
1556513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall*/
1656513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall#include <stdio.h>
1756513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall#include <stdlib.h>
1856513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall#include "GL2Encoder.h"
1956513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall#include <assert.h>
2056513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall
2156513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hallsize_t pixelDataSize(void *self, GLsizei width, GLsizei height, GLenum format, GLenum type, int pack)
2256513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall{
2356513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall    GL2Encoder *ctx = (GL2Encoder *)self;
2456513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall    assert (ctx->state() != NULL);
2556513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall    return ctx->state()->pixelDataSize(width, height, format, type, pack);
2656513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall}
2756513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall
2856513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hallsize_t pixelDataSize3D(void *self, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, int pack)
2956513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall{
3056513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall    size_t layerSize = pixelDataSize(self, width, height, format, type, pack);
3156513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall    return layerSize * depth;
3256513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall}
3356513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall
3456513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse HallGLenum uniformType(void * self, GLuint program, GLint location)
3556513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall{
3656513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall    GL2Encoder * ctx = (GL2Encoder *) self;
3756513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall    assert (ctx->shared() != NULL);
3856513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall    return ctx->shared()->getProgramUniformType(program, location);
3956513f5ff4f3e851c5f0cb38dc8851d18616b3c0Jesse Hall}
40