OpenGLRenderer.cpp revision 85bf02fc16784d935fb9eebfa9cb20fe46ff7951
1e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy/*
2e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * Copyright (C) 2010 The Android Open Source Project
3e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy *
4e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * Licensed under the Apache License, Version 2.0 (the "License");
5e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * you may not use this file except in compliance with the License.
6e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * You may obtain a copy of the License at
7e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy *
8e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy *      http://www.apache.org/licenses/LICENSE-2.0
9e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy *
10e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * Unless required by applicable law or agreed to in writing, software
11e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * distributed under the License is distributed on an "AS IS" BASIS,
12e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * See the License for the specific language governing permissions and
14e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy * limitations under the License.
15e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy */
16e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
1785bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy#define LOG_TAG "OpenGLRenderer"
18e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
19e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy#include <stdlib.h>
20e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy#include <stdint.h>
21e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy#include <sys/types.h>
22e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
23e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy#include <utils/Errors.h>
24e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy#include <utils/Log.h>
25e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
26e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy#include <GLES2/gl2.h>
27e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy#include <GLES2/gl2ext.h>
28e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
2985bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy#include <SkXfermode.h>
3085bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy
3185bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy#include "OpenGLRenderer.h"
3285bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy#include "Matrix.h"
33e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
34e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guynamespace android {
35e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
3685bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain GuyOpenGLRenderer::OpenGLRenderer() {
3785bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy    LOGD("Create OpenGLRenderer");
38e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy}
39e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
4085bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain GuyOpenGLRenderer::~OpenGLRenderer() {
4185bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy    LOGD("Destroy OpenGLRenderer");
42e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy}
43e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
4485bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guyvoid OpenGLRenderer::setViewport(int width, int height) {
4508ae317c21ec3086b5017672bba87420cc38a407Romain Guy    glViewport(0, 0, width, height);
4608ae317c21ec3086b5017672bba87420cc38a407Romain Guy
4708ae317c21ec3086b5017672bba87420cc38a407Romain Guy    mat4 ortho;
4808ae317c21ec3086b5017672bba87420cc38a407Romain Guy    ortho.loadOrtho(0, width, height, 0, 0, 1);
4908ae317c21ec3086b5017672bba87420cc38a407Romain Guy    ortho.copyTo(mOrthoMatrix);
50e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy}
51e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
5285bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guyvoid OpenGLRenderer::prepare() {
5308ae317c21ec3086b5017672bba87420cc38a407Romain Guy    glDisable(GL_SCISSOR_TEST);
5408ae317c21ec3086b5017672bba87420cc38a407Romain Guy    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
5508ae317c21ec3086b5017672bba87420cc38a407Romain Guy    glClear(GL_COLOR_BUFFER_BIT);
5608ae317c21ec3086b5017672bba87420cc38a407Romain Guy    glEnable(GL_SCISSOR_TEST);
57e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy}
58e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy
5985bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guyvoid OpenGLRenderer::drawColor(int color, SkXfermode::Mode mode) {
6085bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy	LOGD("Drawing color");
6185bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy}
6285bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy
63e4d011201cea40d46cb2b2eef401db8fddc5c9c6Romain Guy}; // namespace android
64