aboutsummaryrefslogtreecommitdiffstats
path: root/emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp')
-rw-r--r--emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp348
1 files changed, 0 insertions, 348 deletions
diff --git a/emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp b/emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp
deleted file mode 100644
index 66a691c..0000000
--- a/emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglConfig.h"
-
-EglConfig::EglConfig(EGLint red_size,
- EGLint green_size,
- EGLint blue_size,
- EGLint alpha_size,
- EGLenum caveat,
- EGLint config_id,
- EGLint depth_size,
- EGLint frame_buffer_level,
- EGLint max_pbuffer_width,
- EGLint max_pbuffer_height,
- EGLint max_pbuffer_size,
- EGLBoolean native_renderable,
- EGLint renderable_type,
- EGLint native_visual_id,
- EGLint native_visual_type,
- EGLint samples_per_pixel,
- EGLint stencil_size,
- EGLint surface_type,
- EGLenum transparent_type,
- EGLint trans_red_val,
- EGLint trans_green_val,
- EGLint trans_blue_val,
- EGLNativePixelFormatType frmt):
-
- m_buffer_size(red_size + green_size + blue_size + alpha_size),
- m_red_size(red_size),
- m_green_size(green_size),
- m_blue_size(blue_size),
- m_alpha_size(alpha_size),
- m_bind_to_tex_rgb(EGL_FALSE), //not supported for now
- m_bind_to_tex_rgba(EGL_FALSE), //not supported for now
- m_caveat(caveat),
- m_config_id(config_id),
- m_native_config_id(config_id),
- m_frame_buffer_level(frame_buffer_level),
- m_depth_size(depth_size),
- m_max_pbuffer_width(max_pbuffer_width),
- m_max_pbuffer_height(max_pbuffer_height),
- m_max_pbuffer_size(max_pbuffer_size),
- m_max_swap_interval(MAX_SWAP_INTERVAL),
- m_min_swap_interval(MIN_SWAP_INTERVAL),
- m_native_renderable(native_renderable),
- m_renderable_type(renderable_type),
- m_native_visual_id(native_visual_id),
- m_native_visual_type(native_visual_type),
- m_sample_buffers_num(samples_per_pixel > 0 ?1:0),
- m_samples_per_pixel(samples_per_pixel),
- m_stencil_size(stencil_size),
- m_surface_type(surface_type),
- m_transparent_type(transparent_type),
- m_trans_red_val(trans_red_val),
- m_trans_green_val(trans_green_val),
- m_trans_blue_val(trans_blue_val),
- m_conformant(((red_size + green_size + blue_size + alpha_size > 0) &&
- (caveat!=EGL_NON_CONFORMANT_CONFIG)) ?
- m_renderable_type : 0),
- m_nativeFormat(frmt) {};
-
-
- EglConfig::EglConfig(const EglConfig& conf):m_buffer_size(conf.m_buffer_size),
- m_red_size(conf.m_red_size),
- m_green_size(conf.m_green_size),
- m_blue_size(conf.m_blue_size),
- m_alpha_size(conf.m_alpha_size),
- m_bind_to_tex_rgb(conf.m_bind_to_tex_rgb),
- m_bind_to_tex_rgba(conf.m_bind_to_tex_rgba),
- m_caveat(conf.m_caveat),
- m_config_id(conf.m_config_id),
- m_native_config_id(conf.m_native_config_id),
- m_frame_buffer_level(conf.m_frame_buffer_level),
- m_depth_size(conf.m_depth_size),
- m_max_pbuffer_width(conf.m_max_pbuffer_width),
- m_max_pbuffer_height(conf.m_max_pbuffer_height),
- m_max_pbuffer_size(conf.m_max_pbuffer_size),
- m_max_swap_interval(conf.m_max_swap_interval),
- m_min_swap_interval(conf.m_min_swap_interval),
- m_native_renderable(conf.m_native_renderable),
- m_renderable_type(conf.m_renderable_type),
- m_native_visual_id(conf.m_native_visual_id),
- m_native_visual_type(conf.m_native_visual_type),
- m_sample_buffers_num(conf.m_sample_buffers_num),
- m_samples_per_pixel(conf.m_samples_per_pixel),
- m_stencil_size(conf.m_stencil_size),
- m_surface_type(conf.m_surface_type),
- m_transparent_type(conf.m_transparent_type),
- m_trans_red_val(conf.m_trans_red_val),
- m_trans_green_val(conf.m_trans_green_val),
- m_trans_blue_val(conf.m_trans_blue_val),
- m_conformant(conf.m_conformant),
- m_nativeFormat(conf.m_nativeFormat) {};
-
-
-EglConfig::EglConfig(const EglConfig& conf,
- EGLint config_id,
- EGLint red_size,
- EGLint green_size,
- EGLint blue_size,
- EGLint alpha_size):
-
- m_buffer_size(red_size + green_size + blue_size + alpha_size),
- m_red_size(red_size),
- m_green_size(green_size),
- m_blue_size(blue_size),
- m_alpha_size(alpha_size),
- m_bind_to_tex_rgb(conf.m_bind_to_tex_rgb),
- m_bind_to_tex_rgba(conf.m_bind_to_tex_rgba),
- m_caveat(conf.m_caveat),
- m_config_id(config_id),
- m_native_config_id(conf.m_native_config_id),
- m_frame_buffer_level(conf.m_frame_buffer_level),
- m_depth_size(conf.m_depth_size),
- m_max_pbuffer_width(conf.m_max_pbuffer_width),
- m_max_pbuffer_height(conf.m_max_pbuffer_height),
- m_max_pbuffer_size(conf.m_max_pbuffer_size),
- m_max_swap_interval(conf.m_max_swap_interval),
- m_min_swap_interval(conf.m_min_swap_interval),
- m_native_renderable(conf.m_native_renderable),
- m_renderable_type(conf.m_renderable_type),
- m_native_visual_id(conf.m_native_visual_id),
- m_native_visual_type(conf.m_native_visual_type),
- m_sample_buffers_num(conf.m_sample_buffers_num),
- m_samples_per_pixel(conf.m_samples_per_pixel),
- m_stencil_size(conf.m_stencil_size),
- m_surface_type(conf.m_surface_type),
- m_transparent_type(conf.m_transparent_type),
- m_trans_red_val(conf.m_trans_red_val),
- m_trans_green_val(conf.m_trans_green_val),
- m_trans_blue_val(conf.m_trans_blue_val),
- m_conformant(conf.m_conformant),
- m_nativeFormat(conf.m_nativeFormat) {};
-
-
-bool EglConfig::getConfAttrib(EGLint attrib,EGLint* val) const {
- switch(attrib) {
- case EGL_BUFFER_SIZE:
- *val = m_buffer_size;
- break;
- case EGL_RED_SIZE:
- *val = m_red_size;
- break;
- case EGL_GREEN_SIZE:
- *val = m_green_size;
- break;
- case EGL_BLUE_SIZE:
- *val = m_blue_size;
- break;
- case EGL_ALPHA_SIZE:
- *val = m_alpha_size;
- break;
- case EGL_BIND_TO_TEXTURE_RGB:
- *val = m_bind_to_tex_rgb;
- break;
- case EGL_BIND_TO_TEXTURE_RGBA:
- *val = m_bind_to_tex_rgba;
- break;
- case EGL_CONFIG_CAVEAT:
- *val = m_caveat;
- break;
- case EGL_CONFIG_ID:
- *val = m_config_id;
- break;
- case EGL_DEPTH_SIZE:
- *val = m_depth_size;
- break;
- case EGL_LEVEL:
- *val = m_frame_buffer_level;
- break;
- case EGL_MAX_PBUFFER_WIDTH:
- *val = m_max_pbuffer_width;
- break;
- case EGL_MAX_PBUFFER_HEIGHT:
- *val = m_max_pbuffer_height;
- break;
- case EGL_MAX_PBUFFER_PIXELS:
- *val = m_max_pbuffer_size;
- break;
- case EGL_MAX_SWAP_INTERVAL:
- *val = m_max_swap_interval;
- break;
- case EGL_MIN_SWAP_INTERVAL:
- *val = m_min_swap_interval;
- break;
- case EGL_NATIVE_RENDERABLE:
- *val = m_native_renderable;
- break;
- case EGL_NATIVE_VISUAL_ID:
- *val = m_native_visual_id;
- break;
- case EGL_NATIVE_VISUAL_TYPE:
- *val = m_native_visual_type;
- break;
- case EGL_RENDERABLE_TYPE:
- *val = m_renderable_type;
- break;
- case EGL_SAMPLE_BUFFERS:
- *val = m_sample_buffers_num;
- break;
- case EGL_SAMPLES:
- *val = m_samples_per_pixel;
- break;
- case EGL_STENCIL_SIZE:
- *val = m_stencil_size;
- break;
- case EGL_SURFACE_TYPE:
- *val = m_surface_type;
- break;
- case EGL_TRANSPARENT_TYPE:
- *val =m_transparent_type;
- break;
- case EGL_TRANSPARENT_RED_VALUE:
- *val = m_trans_red_val;
- break;
- case EGL_TRANSPARENT_GREEN_VALUE:
- *val = m_trans_green_val;
- break;
- case EGL_TRANSPARENT_BLUE_VALUE:
- *val = m_trans_blue_val;
- break;
- case EGL_CONFORMANT:
- *val = m_conformant;
- break;
- default:
- return false;
- }
- return true;
-}
-
-// checking compitabilty between *this configuration and another configuration
-// the compitability is checked againsed red,green,blue,buffer stencil and depth sizes
-bool EglConfig::compitableWith(const EglConfig& conf) const {
-
- if(m_buffer_size != conf.m_buffer_size) return false;
- if(m_red_size != conf.m_red_size) return false;
- if(m_green_size != conf.m_green_size) return false;
- if(m_blue_size != conf.m_blue_size) return false;
- if(m_depth_size != conf.m_depth_size) return false;
- if(m_stencil_size != conf.m_stencil_size) return false;
-
- return true;
-}
-
-//following the sorting EGLconfig as in spec
-bool EglConfig::operator<(const EglConfig& conf) const {
- //0
- if(m_conformant != conf.m_conformant) {
- return m_conformant != 0; //We want the conformant ones first
- }
- //1
- if(m_caveat != conf.m_caveat) {
- return m_caveat < conf.m_caveat; // EGL_NONE < EGL_SLOW_CONFIG < EGL_NON_CONFORMANT_CONFIG
- }
- //2 TODO:
-
- //3
- if(m_buffer_size != conf.m_buffer_size) {
- return m_buffer_size < conf.m_buffer_size;
- }
- //4
- if(m_sample_buffers_num != conf.m_sample_buffers_num) {
- return m_sample_buffers_num < conf.m_sample_buffers_num;
- }
- //5
- if(m_samples_per_pixel != conf.m_samples_per_pixel) {
- return m_samples_per_pixel < conf.m_samples_per_pixel;
- }
- //6
- if(m_depth_size != conf.m_depth_size) {
- return m_depth_size < conf.m_depth_size;
- }
- //7
- if(m_stencil_size != conf.m_stencil_size) {
- return m_stencil_size < conf.m_stencil_size;
- }
- //8 implementation defined
- if(m_native_visual_type != conf.m_native_visual_type) {
- return m_native_visual_type < conf.m_native_visual_type;
- }
- //9
- return m_config_id < conf.m_config_id;
-}
-
-bool EglConfig::operator>=(const EglConfig& conf) const {
- return !((*this) < conf);
-}
-#define CHECK_PROP(dummy,prop_name,op) \
- if((dummy.prop_name != EGL_DONT_CARE) && (dummy.prop_name op prop_name)) return false;
-#define CHECK_PROP_CAST(dummy,prop_name,op) \
- if((((EGLint)dummy.prop_name) != EGL_DONT_CARE) && (dummy.prop_name op prop_name)) return false;
-//checking if config stands for all the selection crateria of dummy as defined by EGL spec
-bool EglConfig::choosen(const EglConfig& dummy) {
-
- //atleast
- CHECK_PROP(dummy,m_buffer_size,>);
- CHECK_PROP(dummy,m_red_size,>);
- CHECK_PROP(dummy,m_green_size,>);
- CHECK_PROP(dummy,m_blue_size,>);
- CHECK_PROP(dummy,m_alpha_size,>);
- CHECK_PROP(dummy,m_depth_size,>);
- CHECK_PROP(dummy,m_stencil_size,>);
- CHECK_PROP(dummy,m_sample_buffers_num,>);
- CHECK_PROP(dummy,m_samples_per_pixel,>);
-
- //exact
- CHECK_PROP(dummy,m_frame_buffer_level,!=);
- CHECK_PROP(dummy,m_config_id,!=);
- CHECK_PROP(dummy,m_native_visual_type,!=);
- CHECK_PROP(dummy,m_max_swap_interval ,!=);
- CHECK_PROP(dummy,m_min_swap_interval ,!=);
- CHECK_PROP(dummy,m_trans_red_val ,!=);
- CHECK_PROP(dummy,m_trans_green_val ,!=);
- CHECK_PROP(dummy,m_trans_blue_val ,!=);
- //exact - when cast to EGLint is needed when comparing to EGL_DONT_CARE
- CHECK_PROP_CAST(dummy,m_bind_to_tex_rgb ,!=);
- CHECK_PROP_CAST(dummy,m_bind_to_tex_rgba,!=);
- CHECK_PROP_CAST(dummy,m_caveat,!=);
- CHECK_PROP_CAST(dummy,m_native_renderable ,!=);
- CHECK_PROP_CAST(dummy,m_transparent_type ,!=);
-
- //mask
- if(dummy.m_surface_type != EGL_DONT_CARE &&
- ((dummy.m_surface_type & m_surface_type) != dummy.m_surface_type)) return false;
-
- if(dummy.m_conformant != (EGLenum)EGL_DONT_CARE &&
- ((dummy.m_conformant & m_conformant) != dummy.m_conformant)) return false;
-
- if(dummy.m_renderable_type != EGL_DONT_CARE &&
- ((dummy.m_renderable_type & m_renderable_type) != dummy.m_renderable_type)) return false;
-
- //passed all checks
- return true;
-}