mirror of
https://github.com/brl/mutter.git
synced 2024-11-26 10:00:45 -05:00
b977d75059
When --disable-debug is passed to the configure script it was actually still defining COGL_ENABLE_DEBUG so very little would end up being disabled. If COGL_ENABLE_DEBUG actually got defined it would also fail to compile because _cogl_debug_instances and COGL_DEBUG_N_LONGS from cogl-debug.h were only defined if debugging is enabled but they are used regardless. This patch also makes it so that the _COGL_RETURN_IF_FAIL family of macros that are used when glib support is disabled are now disabled if debugging is disabled. When the glib macros are used they are already disabled because we additionally define G_DISABLE_CHECKS. 'COGL_HANDLE_DEBUG' has been removed from the list of defines passed when debugging is enabled because CoglHandle has already been removed and it is not used anywhere in the code. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 9811a0101c9cbb4ab95c55a2b41fd10ff4c77d9f)
136 lines
3.9 KiB
C
136 lines
3.9 KiB
C
/*
|
|
* Cogl
|
|
*
|
|
* An object oriented GL/GLES Abstraction/Utility Layer
|
|
*
|
|
* Copyright (C) 2007,2008,2009 Intel Corporation.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*
|
|
*/
|
|
|
|
#ifndef __COGL_DEBUG_H__
|
|
#define __COGL_DEBUG_H__
|
|
|
|
#include "cogl-profile.h"
|
|
#include "cogl-flags.h"
|
|
#include "cogl-util.h"
|
|
|
|
#include <glib.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
typedef enum {
|
|
COGL_DEBUG_SLICING,
|
|
COGL_DEBUG_OFFSCREEN,
|
|
COGL_DEBUG_DRAW,
|
|
COGL_DEBUG_PANGO,
|
|
COGL_DEBUG_RECTANGLES,
|
|
COGL_DEBUG_OBJECT,
|
|
COGL_DEBUG_BLEND_STRINGS,
|
|
COGL_DEBUG_DISABLE_BATCHING,
|
|
COGL_DEBUG_DISABLE_VBOS,
|
|
COGL_DEBUG_DISABLE_PBOS,
|
|
COGL_DEBUG_JOURNAL,
|
|
COGL_DEBUG_BATCHING,
|
|
COGL_DEBUG_DISABLE_SOFTWARE_TRANSFORM,
|
|
COGL_DEBUG_MATRICES,
|
|
COGL_DEBUG_ATLAS,
|
|
COGL_DEBUG_DUMP_ATLAS_IMAGE,
|
|
COGL_DEBUG_DISABLE_ATLAS,
|
|
COGL_DEBUG_DISABLE_SHARED_ATLAS,
|
|
COGL_DEBUG_OPENGL,
|
|
COGL_DEBUG_DISABLE_TEXTURING,
|
|
COGL_DEBUG_DISABLE_ARBFP,
|
|
COGL_DEBUG_DISABLE_FIXED,
|
|
COGL_DEBUG_DISABLE_GLSL,
|
|
COGL_DEBUG_SHOW_SOURCE,
|
|
COGL_DEBUG_DISABLE_BLENDING,
|
|
COGL_DEBUG_TEXTURE_PIXMAP,
|
|
COGL_DEBUG_BITMAP,
|
|
COGL_DEBUG_DISABLE_NPOT_TEXTURES,
|
|
COGL_DEBUG_WIREFRAME,
|
|
COGL_DEBUG_DISABLE_SOFTWARE_CLIP,
|
|
COGL_DEBUG_DISABLE_PROGRAM_CACHES,
|
|
COGL_DEBUG_DISABLE_FAST_READ_PIXEL,
|
|
COGL_DEBUG_CLIPPING,
|
|
COGL_DEBUG_WINSYS,
|
|
COGL_DEBUG_PERFORMANCE,
|
|
|
|
COGL_DEBUG_N_FLAGS
|
|
} CoglDebugFlags;
|
|
|
|
extern GHashTable *_cogl_debug_instances;
|
|
#define COGL_DEBUG_N_LONGS COGL_FLAGS_N_LONGS_FOR_SIZE (COGL_DEBUG_N_FLAGS)
|
|
|
|
#ifdef COGL_ENABLE_DEBUG
|
|
|
|
/* _cogl_debug_flags currently needs to exported outside of the shared
|
|
library for cogl-pango. The special COGL_EXPORT macro is needed to
|
|
get this to work when building with MSVC */
|
|
COGL_EXPORT extern unsigned long _cogl_debug_flags[COGL_DEBUG_N_LONGS];
|
|
|
|
#define COGL_DEBUG_ENABLED(flag) \
|
|
COGL_FLAGS_GET (_cogl_debug_flags, flag)
|
|
|
|
#define COGL_DEBUG_SET_FLAG(flag) \
|
|
COGL_FLAGS_SET (_cogl_debug_flags, flag, TRUE)
|
|
|
|
#define COGL_DEBUG_CLEAR_FLAG(flag) \
|
|
COGL_FLAGS_SET (_cogl_debug_flags, flag, FALSE)
|
|
|
|
#ifdef __GNUC__
|
|
#define COGL_NOTE(type,x,a...) G_STMT_START { \
|
|
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_##type))) { \
|
|
_cogl_profile_trace_message ("[" #type "] " G_STRLOC " & " x, ##a); \
|
|
} } G_STMT_END
|
|
|
|
#else
|
|
#define COGL_NOTE(type,...) G_STMT_START { \
|
|
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_##type))) { \
|
|
char *_fmt = g_strdup_printf (__VA_ARGS__); \
|
|
_cogl_profile_trace_message ("[" #type "] " G_STRLOC " & %s", _fmt);\
|
|
g_free (_fmt); \
|
|
} } G_STMT_END
|
|
|
|
#endif /* __GNUC__ */
|
|
|
|
#else /* !COGL_ENABLE_DEBUG */
|
|
|
|
#define COGL_NOTE(type,...) G_STMT_START {} G_STMT_END
|
|
|
|
#define COGL_DEBUG_ENABLED(flag) FALSE
|
|
|
|
#define COGL_DEBUG_SET_FLAG(flag) \
|
|
G_STMT_START { } G_STMT_END
|
|
|
|
#define COGL_DEBUG_CLEAR_FLAG(flag) \
|
|
G_STMT_START { } G_STMT_END
|
|
|
|
#endif /* COGL_ENABLE_DEBUG */
|
|
|
|
void
|
|
_cogl_debug_check_environment (void);
|
|
|
|
void
|
|
_cogl_parse_debug_string (const char *value,
|
|
CoglBool enable,
|
|
CoglBool ignore_help);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __COGL_DEBUG_H__ */
|
|
|