Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4358 Serge 1
/*
2
 * Mesa 3-D graphics library
3
 *
4
 * Copyright (C) 2011  VMware, Inc.  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
#ifndef SAMPLEROBJ_H
28
#define SAMPLEROBJ_H
29
 
30
struct dd_function_table;
31
 
32
static inline struct gl_sampler_object *
33
_mesa_get_samplerobj(struct gl_context *ctx, GLuint unit)
34
{
35
   if (ctx->Texture.Unit[unit].Sampler)
36
      return ctx->Texture.Unit[unit].Sampler;
37
   else if (ctx->Texture.Unit[unit]._Current)
38
      return &ctx->Texture.Unit[unit]._Current->Sampler;
39
   else
40
      return NULL;
41
}
42
 
43
 
44
/** Does the given filter state do mipmap filtering? */
45
static inline GLboolean
46
_mesa_is_mipmap_filter(const struct gl_sampler_object *samp)
47
{
48
   return samp->MinFilter != GL_NEAREST && samp->MinFilter != GL_LINEAR;
49
}
50
 
51
 
52
extern void
53
_mesa_reference_sampler_object_(struct gl_context *ctx,
54
                                struct gl_sampler_object **ptr,
55
                                struct gl_sampler_object *samp);
56
 
57
static inline void
58
_mesa_reference_sampler_object(struct gl_context *ctx,
59
                               struct gl_sampler_object **ptr,
60
                               struct gl_sampler_object *samp)
61
{
62
   if (*ptr != samp)
63
      _mesa_reference_sampler_object_(ctx, ptr, samp);
64
}
65
 
66
extern struct gl_sampler_object *
67
_mesa_lookup_samplerobj(struct gl_context *ctx, GLuint name);
68
 
69
extern struct gl_sampler_object *
70
_mesa_new_sampler_object(struct gl_context *ctx, GLuint name);
71
 
72
extern void
73
_mesa_init_sampler_object_functions(struct dd_function_table *driver);
74
 
75
void GLAPIENTRY
76
_mesa_GenSamplers(GLsizei count, GLuint *samplers);
77
void GLAPIENTRY
78
_mesa_DeleteSamplers(GLsizei count, const GLuint *samplers);
79
GLboolean GLAPIENTRY
80
_mesa_IsSampler(GLuint sampler);
81
void GLAPIENTRY
82
_mesa_BindSampler(GLuint unit, GLuint sampler);
83
void GLAPIENTRY
84
_mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param);
85
void GLAPIENTRY
86
_mesa_SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
87
void GLAPIENTRY
88
_mesa_SamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params);
89
void GLAPIENTRY
90
_mesa_SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params);
91
void GLAPIENTRY
92
_mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params);
93
void GLAPIENTRY
94
_mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params);
95
void GLAPIENTRY
96
_mesa_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
97
void GLAPIENTRY
98
_mesa_GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
99
void GLAPIENTRY
100
_mesa_GetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params);
101
void GLAPIENTRY
102
_mesa_GetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params);
103
 
104
#endif /* SAMPLEROBJ_H */