Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5564 serge 1
/*
2
 * Mesa 3-D graphics library
3
 *
4
 * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
5
 *
6
 * Permission is hereby granted, free of charge, to any person obtaining a
7
 * copy of this software and associated documentation files (the "Software"),
8
 * to deal in the Software without restriction, including without limitation
9
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
 * and/or sell copies of the Software, and to permit persons to whom the
11
 * Software is furnished to do so, subject to the following conditions:
12
 *
13
 * The above copyright notice and this permission notice shall be included
14
 * in all copies or substantial portions of the Software.
15
 *
16
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
 * OTHER DEALINGS IN THE SOFTWARE.
23
 */
24
 
25
 
26
/**
27
 * \file errors.h
28
 * Mesa debugging and error handling functions.
29
 *
30
 * This file provides functions to record errors, warnings, and miscellaneous
31
 * debug information.
32
 */
33
 
34
 
35
#ifndef ERRORS_H
36
#define ERRORS_H
37
 
38
 
39
#include 
40
#include "compiler.h"
41
#include "glheader.h"
42
#include "mtypes.h"
43
 
44
 
45
#ifdef __cplusplus
46
extern "C" {
47
#endif
48
 
49
struct _glapi_table;
50
 
51
extern void
52
_mesa_init_errors( struct gl_context *ctx );
53
 
54
extern void
55
_mesa_free_errors_data( struct gl_context *ctx );
56
 
57
extern void
58
_mesa_warning( struct gl_context *gc, const char *fmtString, ... ) PRINTFLIKE(2, 3);
59
 
60
extern void
61
_mesa_problem( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3);
62
 
63
extern void
64
_mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) PRINTFLIKE(3, 4);
65
 
66
extern void
67
_mesa_error_no_memory(const char *caller);
68
 
69
extern void
70
_mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3);
71
 
72
extern void
73
_mesa_log(const char *fmtString, ...) PRINTFLIKE(1, 2);
74
 
75
extern FILE *
76
_mesa_get_log_file(void);
77
 
78
extern void
79
_mesa_gl_debug(struct gl_context *ctx,
80
               GLuint *id,
81
               enum mesa_debug_source source,
82
               enum mesa_debug_type type,
83
               enum mesa_debug_severity severity,
84
               const char *fmtString, ...) PRINTFLIKE(6, 7);
85
 
86
#define _mesa_perf_debug(ctx, sev, ...) do {                              \
87
   static GLuint msg_id = 0;                                              \
88
   if (unlikely(ctx->Const.ContextFlags & GL_CONTEXT_FLAG_DEBUG_BIT)) {   \
89
      _mesa_gl_debug(ctx, &msg_id,                                        \
90
                     MESA_DEBUG_SOURCE_API,                               \
91
                     MESA_DEBUG_TYPE_PERFORMANCE,                         \
92
                     sev,                                                 \
93
                     __VA_ARGS__);                                        \
94
   }                                                                      \
95
} while (0)
96
 
97
bool
98
_mesa_set_debug_state_int(struct gl_context *ctx, GLenum pname, GLint val);
99
 
100
GLint
101
_mesa_get_debug_state_int(struct gl_context *ctx, GLenum pname);
102
 
103
void *
104
_mesa_get_debug_state_ptr(struct gl_context *ctx, GLenum pname);
105
 
106
extern void
107
_mesa_shader_debug(struct gl_context *ctx, GLenum type, GLuint *id,
108
                   const char *msg, int len);
109
 
110
void GLAPIENTRY
111
_mesa_DebugMessageInsert(GLenum source, GLenum type, GLuint id,
112
                         GLenum severity, GLint length,
113
                         const GLchar* buf);
114
GLuint GLAPIENTRY
115
_mesa_GetDebugMessageLog(GLuint count, GLsizei logSize, GLenum* sources,
116
                         GLenum* types, GLenum* ids, GLenum* severities,
117
                         GLsizei* lengths, GLchar* messageLog);
118
void GLAPIENTRY
119
_mesa_DebugMessageControl(GLenum source, GLenum type, GLenum severity,
120
                          GLsizei count, const GLuint *ids,
121
                          GLboolean enabled);
122
void GLAPIENTRY
123
_mesa_DebugMessageCallback(GLDEBUGPROC callback,
124
                           const void *userParam);
125
void GLAPIENTRY
126
_mesa_PushDebugGroup(GLenum source, GLuint id, GLsizei length,
127
                     const GLchar *message);
128
void GLAPIENTRY
129
_mesa_PopDebugGroup(void);
130
 
131
#ifdef __cplusplus
132
}
133
#endif
134
 
135
 
136
#endif /* ERRORS_H */