111 lines
3.7 KiB
C
111 lines
3.7 KiB
C
|
/**
|
||
|
* 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<GeomEnums::UsageHint> gl_min_buffer_usage_hint;
|
||
|
extern EXPCL_GL ConfigVariableBool gl_debug;
|
||
|
extern ConfigVariableBool gl_debug_synchronous;
|
||
|
extern ConfigVariableEnum<NotifySeverity> 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<CoordinateSystem> 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__)
|