/** * PANDA 3D SOFTWARE * Copyright (c) Carnegie Mellon University. All rights reserved. * * All use of this software is subject to the terms of the revised BSD * license. You should have received a copy of this license along * with this source code in a file named "LICENSE." * * @file glmisc_src.h * @author drose * @date 2004-02-09 */ #include "pandabase.h" #include "configVariableBool.h" #include "configVariableInt.h" #include "configVariableEnum.h" #include "geomEnums.h" #include "coordinateSystem.h" // Define some macros to transparently map to the double or float versions of // the OpenGL function names. #ifndef GLf #ifndef STDFLOAT_DOUBLE #define GLf(name) name ## f #define GLfv(name) name ## fv #define GLfc(name) name ## fc #define GLfr(name) name ## fr #define GLf_str "f" #else // STDFLOAT_DOUBLE #define GLf(name) name ## d #define GLfv(name) name ## dv #define GLfc(name) name ## dc #define GLfr(name) name ## dr #define GLf_str "d" #endif // STDFLOAT_DOUBLE #endif // GLf // #define GSG_VERBOSE 1 extern EXPCL_GL ConfigVariableInt gl_version; extern EXPCL_GL ConfigVariableBool gl_forward_compatible; extern EXPCL_GL ConfigVariableBool gl_support_fbo; extern ConfigVariableBool gl_cheap_textures; extern ConfigVariableBool gl_ignore_clamp; extern ConfigVariableBool gl_support_clamp_to_border; extern ConfigVariableBool gl_support_texture_lod; extern ConfigVariableBool gl_ignore_filters; extern ConfigVariableBool gl_ignore_mipmaps; extern ConfigVariableBool gl_force_mipmaps; extern ConfigVariableBool gl_show_texture_usage; extern ConfigVariableInt gl_show_texture_usage_max_size; extern ConfigVariableBool gl_color_mask; extern ConfigVariableBool gl_support_occlusion_query; extern ConfigVariableBool gl_compile_and_execute; extern ConfigVariableBool gl_interleaved_arrays; extern ConfigVariableBool gl_parallel_arrays; extern ConfigVariableInt gl_max_errors; extern ConfigVariableEnum gl_min_buffer_usage_hint; extern EXPCL_GL ConfigVariableBool gl_debug; extern ConfigVariableBool gl_debug_synchronous; extern ConfigVariableEnum gl_debug_abort_level; extern ConfigVariableBool gl_debug_object_labels; extern ConfigVariableBool gl_debug_buffers; extern ConfigVariableBool gl_finish; extern ConfigVariableBool gl_force_depth_stencil; extern ConfigVariableBool gl_force_fbo_color; extern ConfigVariableBool gl_check_errors; extern ConfigVariableBool gl_force_flush; extern ConfigVariableBool gl_separate_specular_color; extern ConfigVariableBool gl_cube_map_seamless; extern ConfigVariableBool gl_dump_compiled_shaders; extern ConfigVariableBool gl_validate_shaders; extern ConfigVariableBool gl_immutable_texture_storage; extern ConfigVariableBool gl_use_bindless_texture; extern ConfigVariableBool gl_enable_memory_barriers; extern ConfigVariableBool gl_vertex_array_objects; extern ConfigVariableBool gl_fixed_vertex_attrib_locations; extern ConfigVariableBool gl_support_primitive_restart_index; extern ConfigVariableBool gl_support_sampler_objects; extern ConfigVariableBool gl_support_shadow_filter; extern ConfigVariableBool gl_force_image_bindings_writeonly; extern ConfigVariableEnum gl_coordinate_system; extern EXPCL_GL void CLP(init_classes)(); #if !defined(WIN32) && defined(GSG_VERBOSE) std::ostream &output_gl_enum(std::ostream &out, GLenum v); INLINE std::ostream &operator << (std::ostream &out, GLenum v) { return output_gl_enum(out, v); } #endif #ifdef DO_PSTATS #define DO_PSTATS_STUFF(XX) XX; #else #define DO_PSTATS_STUFF(XX) #endif #define ISPOW2(X) (((X) & ((X)-1))==0) #define report_my_gl_errors() \ report_my_errors(__LINE__, __FILE__) #define clear_my_gl_errors() \ clear_my_errors(__LINE__, __FILE__)