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