Lines Matching refs:ctx

55 validate_texture_wrap_mode(struct gl_context * ctx, GLenum target, GLenum wrap)
57 const struct gl_extensions * const e = & ctx->Extensions;
58 const bool is_desktop_gl = _mesa_is_desktop_gl(ctx);
66 supported = (ctx->API == API_OPENGL_COMPAT)
75 supported = ctx->API != API_OPENGLES && e->ARB_texture_border_clamp
111 _mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(param=0x%x)", wrap );
125 get_texobj_by_target(struct gl_context *ctx, GLenum target, GLboolean get)
130 if (ctx->Texture.CurrentUnit >= ctx->Const.MaxCombinedTextureImageUnits) {
131 _mesa_error(ctx, GL_INVALID_OPERATION,
136 texUnit = _mesa_get_current_tex_unit(ctx);
138 targetIndex = _mesa_tex_target_to_index(ctx, target);
140 _mesa_error(ctx, GL_INVALID_ENUM,
156 get_texobj_by_name(struct gl_context *ctx, GLuint texture, GLboolean get)
160 texObj = _mesa_lookup_texture(ctx, texture);
182 _mesa_error(ctx, GL_INVALID_ENUM,
234 flush(struct gl_context *ctx)
236 FLUSH_VERTICES(ctx, _NEW_TEXTURE);
248 incomplete(struct gl_context *ctx, struct gl_texture_object *texObj)
250 FLUSH_VERTICES(ctx, _NEW_TEXTURE);
251 _mesa_dirty_texobj(ctx, texObj);
274 set_tex_parameteri(struct gl_context *ctx,
290 flush(ctx);
299 flush(ctx);
318 flush(ctx); /* does not effect completeness */
332 if (validate_texture_wrap_mode(ctx, texObj->Target, params[0])) {
333 flush(ctx);
345 if (validate_texture_wrap_mode(ctx, texObj->Target, params[0])) {
346 flush(ctx);
358 if (validate_texture_wrap_mode(ctx, texObj->Target, params[0])) {
359 flush(ctx);
366 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
377 _mesa_error(ctx, GL_INVALID_VALUE,
382 _mesa_error(ctx, GL_INVALID_OPERATION,
387 incomplete(ctx, texObj);
403 _mesa_error(ctx, GL_INVALID_VALUE,
408 incomplete(ctx, texObj);
425 if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
438 if ((_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_shadow)
439 || _mesa_is_gles3(ctx)) {
448 flush(ctx);
457 if ((_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_shadow)
458 || _mesa_is_gles3(ctx)) {
474 flush(ctx);
487 if (ctx->API == API_OPENGL_COMPAT && ctx->Extensions.ARB_depth_texture) {
493 (ctx->Extensions.ARB_texture_rg && params[0] == GL_RED)) {
494 flush(ctx);
503 if (_mesa_has_ARB_stencil_texturing(ctx) || _mesa_is_gles31(ctx)) {
517 if (ctx->API != API_OPENGLES || !ctx->Extensions.OES_draw_texture)
530 if ((_mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_swizzle)
531 || _mesa_is_gles3(ctx)) {
535 _mesa_error(ctx, GL_INVALID_ENUM,
541 flush(ctx);
549 if ((_mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_swizzle)
550 || _mesa_is_gles3(ctx)) {
552 flush(ctx);
560 _mesa_error(ctx, GL_INVALID_ENUM,
571 if (ctx->Extensions.EXT_texture_sRGB_decode) {
579 flush(ctx);
588 if (_mesa_is_desktop_gl(ctx)
589 && ctx->Extensions.AMD_seamless_cubemap_per_texture) {
599 flush(ctx);
611 _mesa_error(ctx, GL_INVALID_ENUM, "glTex%sParameter(pname=%s)",
616 _mesa_error(ctx, GL_INVALID_ENUM, "glTex%sParameter(param=%s)",
621 _mesa_error(ctx, GL_INVALID_OPERATION, "glTex%sParameter(pname=%s)",
626 _mesa_error(ctx, GL_INVALID_ENUM, "glTex%sParameter(pname=%s)",
637 set_tex_parameterf(struct gl_context *ctx,
645 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
653 flush(ctx);
658 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
666 flush(ctx);
671 if (ctx->API != API_OPENGL_COMPAT)
674 flush(ctx);
679 if (ctx->Extensions.EXT_texture_filter_anisotropic) {
686 _mesa_error(ctx, GL_INVALID_VALUE, "glTex%sParameter(param)",
690 flush(ctx);
693 ctx->Const.MaxTextureMaxAnisotropy);
705 if (_mesa_is_gles(ctx))
712 flush(ctx);
719 if (ctx->API == API_OPENGLES ||
720 !ctx->Extensions.ARB_texture_border_clamp)
726 flush(ctx);
728 if (ctx->Extensions.ARB_texture_float) {
747 _mesa_error(ctx, GL_INVALID_ENUM, "glTex%sParameter(pname=%s)",
752 _mesa_error(ctx, GL_INVALID_ENUM, "glTex%sParameter(pname=%s)",
759 _mesa_texture_parameterf(struct gl_context *ctx,
791 need_update = set_tex_parameteri(ctx, texObj, pname, p, dsa);
796 _mesa_error(ctx, GL_INVALID_ENUM, "glTex%sParameterf(non-scalar pname)",
805 need_update = set_tex_parameterf(ctx, texObj, pname, p, dsa);
809 if (ctx->Driver.TexParameter && need_update) {
810 ctx->Driver.TexParameter(ctx, texObj, pname);
816 _mesa_texture_parameterfv(struct gl_context *ctx,
841 need_update = set_tex_parameteri(ctx, texObj, pname, p, dsa);
852 need_update = set_tex_parameteri(ctx, texObj, pname, iparams, dsa);
868 need_update = set_tex_parameteri(ctx, texObj, pname, p, dsa);
873 need_update = set_tex_parameterf(ctx, texObj, pname, params, dsa);
876 if (ctx->Driver.TexParameter && need_update) {
877 ctx->Driver.TexParameter(ctx, texObj, pname);
883 _mesa_texture_parameteri(struct gl_context *ctx,
900 need_update = set_tex_parameterf(ctx, texObj, pname, fparam, dsa);
906 _mesa_error(ctx, GL_INVALID_ENUM,
917 need_update = set_tex_parameteri(ctx, texObj, pname, iparam, dsa);
921 if (ctx->Driver.TexParameter && need_update) {
922 ctx->Driver.TexParameter(ctx, texObj, pname);
928 _mesa_texture_parameteriv(struct gl_context *ctx,
938 _mesa_error(ctx, GL_INVALID_ENUM, "glTextureParameteriv(texture)");
947 need_update = set_tex_parameterf(ctx, texObj, pname, fparams, dsa);
961 need_update = set_tex_parameterf(ctx, texObj, pname, fparams, dsa);
966 need_update = set_tex_parameteri(ctx, texObj, pname, params, dsa);
969 if (ctx->Driver.TexParameter && need_update) {
970 ctx->Driver.TexParameter(ctx, texObj, pname);
975 _mesa_texture_parameterIiv(struct gl_context *ctx,
982 _mesa_error(ctx, GL_INVALID_ENUM, "glTextureParameterIiv(texture)");
985 FLUSH_VERTICES(ctx, _NEW_TEXTURE);
990 _mesa_texture_parameteriv(ctx, texObj, pname, params, dsa);
997 _mesa_texture_parameterIuiv(struct gl_context *ctx,
1004 _mesa_error(ctx, GL_INVALID_ENUM, "glTextureParameterIuiv(texture)");
1007 FLUSH_VERTICES(ctx, _NEW_TEXTURE);
1012 _mesa_texture_parameteriv(ctx, texObj, pname, (const GLint *) params,
1023 GET_CURRENT_CONTEXT(ctx);
1025 texObj = get_texobj_by_target(ctx, target, GL_FALSE);
1029 _mesa_texture_parameterf(ctx, texObj, pname, param, false);
1036 GET_CURRENT_CONTEXT(ctx);
1038 texObj = get_texobj_by_target(ctx, target, GL_FALSE);
1042 _mesa_texture_parameterfv(ctx, texObj, pname, params, false);
1049 GET_CURRENT_CONTEXT(ctx);
1051 texObj = get_texobj_by_target(ctx, target, GL_FALSE);
1055 _mesa_texture_parameteri(ctx, texObj, pname, param, false);
1062 GET_CURRENT_CONTEXT(ctx);
1064 texObj = get_texobj_by_target(ctx, target, GL_FALSE);
1068 _mesa_texture_parameteriv(ctx, texObj, pname, params, false);
1080 GET_CURRENT_CONTEXT(ctx);
1082 texObj = get_texobj_by_target(ctx, target, GL_FALSE);
1086 _mesa_texture_parameterIiv(ctx, texObj, pname, params, false);
1098 GET_CURRENT_CONTEXT(ctx);
1100 texObj = get_texobj_by_target(ctx, target, GL_FALSE);
1104 _mesa_texture_parameterIuiv(ctx, texObj, pname, params, false);
1112 GET_CURRENT_CONTEXT(ctx);
1114 texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
1117 _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureParameterfv(texture)");
1121 _mesa_texture_parameterfv(ctx, texObj, pname, params, true);
1128 GET_CURRENT_CONTEXT(ctx);
1130 texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
1133 _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureParameterf(texture)");
1137 _mesa_texture_parameterf(ctx, texObj, pname, param, true);
1144 GET_CURRENT_CONTEXT(ctx);
1146 texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
1149 _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureParameteri(texture)");
1153 _mesa_texture_parameteri(ctx, texObj, pname, param, true);
1161 GET_CURRENT_CONTEXT(ctx);
1163 texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
1166 _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureParameteriv(texture)");
1170 _mesa_texture_parameteriv(ctx, texObj, pname, params, true);
1178 GET_CURRENT_CONTEXT(ctx);
1180 texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
1183 _mesa_error(ctx, GL_INVALID_OPERATION,
1188 _mesa_texture_parameterIiv(ctx, texObj, pname, params, true);
1195 GET_CURRENT_CONTEXT(ctx);
1197 texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
1200 _mesa_error(ctx, GL_INVALID_OPERATION,
1205 _mesa_texture_parameterIuiv(ctx, texObj, pname, params, true);
1209 _mesa_legal_get_tex_level_parameter_target(struct gl_context *ctx, GLenum target,
1218 return ctx->Extensions.EXT_texture_array;
1225 return ctx->Extensions.ARB_texture_cube_map;
1228 return ctx->Extensions.ARB_texture_multisample;
1247 return (ctx->API == API_OPENGL_CORE && ctx->Version >= 31) ||
1248 _mesa_has_OES_texture_buffer(ctx);
1250 return _mesa_has_texture_cube_map_array(ctx);
1253 if (!_mesa_is_desktop_gl(ctx))
1264 return ctx->Extensions.ARB_texture_cube_map;
1266 return ctx->Extensions.ARB_texture_cube_map_array;
1269 return ctx->Extensions.NV_texture_rectangle;
1273 return ctx->Extensions.EXT_texture_array;
1276 return ctx->Extensions.ARB_texture_multisample;
1294 get_tex_level_parameter_image(struct gl_context *ctx,
1338 *params = _mesa_compressed_format_to_glenum(ctx, texFormat);
1360 if (ctx->API != API_OPENGL_COMPAT)
1375 if (ctx->API != API_OPENGL_COMPAT)
1392 if (!ctx->Extensions.ARB_depth_texture)
1400 if (ctx->Version < 30 &&
1401 !ctx->Extensions.EXT_texture_shared_exponent)
1414 _mesa_error(ctx, GL_INVALID_OPERATION,
1426 if (ctx->API != API_OPENGL_COMPAT)
1434 if (!ctx->Extensions.ARB_texture_float)
1444 if (!ctx->Extensions.ARB_texture_multisample)
1450 if (!ctx->Extensions.ARB_texture_multisample)
1461 if (!ctx->Extensions.ARB_texture_buffer_object)
1468 if (!ctx->Extensions.ARB_texture_buffer_range)
1473 if (!ctx->Extensions.ARB_texture_buffer_range)
1486 _mesa_error(ctx, GL_INVALID_ENUM,
1496 get_tex_level_parameter_buffer(struct gl_context *ctx,
1576 if (!ctx->Extensions.ARB_texture_buffer_range)
1581 if (!ctx->Extensions.ARB_texture_buffer_range)
1588 if (!ctx->Extensions.ARB_texture_multisample)
1594 if (!ctx->Extensions.ARB_texture_multisample)
1602 _mesa_error(ctx, GL_INVALID_OPERATION,
1615 if (!ctx->Extensions.ARB_texture_float)
1631 _mesa_error(ctx, GL_INVALID_ENUM,
1637 valid_tex_level_parameteriv_target(struct gl_context *ctx, GLenum target,
1641 if (!_mesa_legal_get_tex_level_parameter_target(ctx, target, dsa)) {
1642 _mesa_error(ctx, GL_INVALID_ENUM,
1655 get_tex_level_parameteriv(struct gl_context *ctx,
1665 if (ctx->Texture.CurrentUnit >= ctx->Const.MaxCombinedTextureImageUnits) {
1666 _mesa_error(ctx, GL_INVALID_OPERATION,
1672 maxLevels = _mesa_max_texture_levels(ctx, target);
1676 _mesa_error(ctx, GL_INVALID_VALUE,
1683 get_tex_level_parameter_buffer(ctx, texObj, pname, params, dsa);
1686 get_tex_level_parameter_image(ctx, texObj, target,
1697 GET_CURRENT_CONTEXT(ctx);
1699 if (!valid_tex_level_parameteriv_target(ctx, target, false))
1702 texObj = _mesa_get_current_tex_object(ctx, target);
1706 get_tex_level_parameteriv(ctx, texObj, target, level,
1717 GET_CURRENT_CONTEXT(ctx);
1719 if (!valid_tex_level_parameteriv_target(ctx, target, false))
1722 texObj = _mesa_get_current_tex_object(ctx, target);
1726 get_tex_level_parameteriv(ctx, texObj, target, level,
1736 GET_CURRENT_CONTEXT(ctx);
1738 texObj = _mesa_lookup_texture_err(ctx, texture,
1743 if (!valid_tex_level_parameteriv_target(ctx, texObj->Target, true))
1746 get_tex_level_parameteriv(ctx, texObj, texObj->Target, level,
1757 GET_CURRENT_CONTEXT(ctx);
1759 texObj = _mesa_lookup_texture_err(ctx, texture,
1764 if (!valid_tex_level_parameteriv_target(ctx, texObj->Target, true))
1767 get_tex_level_parameteriv(ctx, texObj, texObj->Target, level,
1776 get_tex_parameterfv(struct gl_context *ctx,
1780 _mesa_lock_context_textures(ctx);
1798 if (ctx->API == API_OPENGLES ||
1799 !ctx->Extensions.ARB_texture_border_clamp)
1802 if (ctx->NewState & (_NEW_BUFFERS | _NEW_FRAG_CLAMP))
1803 _mesa_update_state_locked(ctx);
1804 if (_mesa_get_clamp_fragment_color(ctx, ctx->DrawBuffer)) {
1818 if (ctx->API != API_OPENGL_COMPAT)
1824 if (ctx->API != API_OPENGL_COMPAT)
1830 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
1836 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
1842 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
1851 if (!ctx->Extensions.EXT_texture_filter_anisotropic)
1856 if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
1862 if ((!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_shadow)
1863 && !_mesa_is_gles3(ctx))
1868 if ((!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_shadow)
1869 && !_mesa_is_gles3(ctx))
1877 if (ctx->API != API_OPENGL_COMPAT || !ctx->Extensions.ARB_depth_texture)
1882 if (!_mesa_has_ARB_stencil_texturing(ctx) && !_mesa_is_gles31(ctx))
1888 if (_mesa_is_gles(ctx))
1894 if (ctx->API != API_OPENGLES || !ctx->Extensions.OES_draw_texture)
1907 if ((!_mesa_is_desktop_gl(ctx)
1908 || !ctx->Extensions.EXT_texture_swizzle)
1909 && !_mesa_is_gles3(ctx))
1915 if ((!_mesa_is_desktop_gl(ctx)
1916 || !ctx->Extensions.EXT_texture_swizzle)
1917 && !_mesa_is_gles3(ctx)) {
1929 if (!_mesa_is_desktop_gl(ctx)
1930 || !ctx->Extensions.AMD_seamless_cubemap_per_texture)
1940 if (_mesa_is_gles3(ctx) ||
1941 (_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_texture_view))
1948 if (!ctx->Extensions.ARB_texture_view)
1954 if (!ctx->Extensions.ARB_texture_view)
1960 if (!ctx->Extensions.ARB_texture_view)
1966 if (!ctx->Extensions.ARB_texture_view)
1972 if (!_mesa_is_gles(ctx) || !ctx->Extensions.OES_EGL_image_external)
1978 if (!ctx->Extensions.EXT_texture_sRGB_decode)
1984 if (!ctx->Extensions.ARB_shader_image_load_store)
1990 if (ctx->API != API_OPENGL_CORE)
2000 _mesa_unlock_context_textures(ctx);
2004 _mesa_unlock_context_textures(ctx);
2005 _mesa_error(ctx, GL_INVALID_ENUM, "glGetTex%sParameterfv(pname=0x%x)",
2011 get_tex_parameteriv(struct gl_context *ctx,
2015 _mesa_lock_texture(ctx, obj);
2033 if (ctx->API == API_OPENGLES ||
2034 !ctx->Extensions.ARB_texture_border_clamp)
2050 if (ctx->API != API_OPENGL_COMPAT)
2056 if (ctx->API != API_OPENGL_COMPAT)
2062 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
2070 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
2078 if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx))
2087 if (!ctx->Extensions.EXT_texture_filter_anisotropic)
2095 if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
2101 if ((!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_shadow)
2102 && !_mesa_is_gles3(ctx))
2107 if ((!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_shadow)
2108 && !_mesa_is_gles3(ctx))
2113 if (ctx->API != API_OPENGL_COMPAT || !ctx->Extensions.ARB_depth_texture)
2118 if (!_mesa_has_ARB_stencil_texturing(ctx) && !_mesa_is_gles31(ctx))
2124 if (_mesa_is_gles(ctx))
2133 if (ctx->API != API_OPENGLES || !ctx->Extensions.OES_draw_texture)
2145 if ((!_mesa_is_desktop_gl(ctx)
2146 || !ctx->Extensions.EXT_texture_swizzle)
2147 && !_mesa_is_gles3(ctx))
2153 if ((!_mesa_is_desktop_gl(ctx)
2154 || !ctx->Extensions.EXT_texture_swizzle)
2155 && !_mesa_is_gles3(ctx))
2161 if (!_mesa_is_desktop_gl(ctx)
2162 || !ctx->Extensions.AMD_seamless_cubemap_per_texture)
2172 if (_mesa_is_gles3(ctx) ||
2173 (_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_texture_view))
2180 if (!ctx->Extensions.ARB_texture_view)
2186 if (!ctx->Extensions.ARB_texture_view)
2192 if (!ctx->Extensions.ARB_texture_view)
2198 if (!ctx->Extensions.ARB_texture_view)
2204 if (!_mesa_is_gles(ctx) || !ctx->Extensions.OES_EGL_image_external)
2210 if (!ctx->Extensions.EXT_texture_sRGB_decode)
2216 if (!ctx->Extensions.ARB_shader_image_load_store)
2222 if (ctx->API != API_OPENGL_CORE)
2232 _mesa_unlock_texture(ctx, obj);
2236 _mesa_unlock_texture(ctx, obj);
2237 _mesa_error(ctx, GL_INVALID_ENUM, "glGetTex%sParameteriv(pname=0x%x)",
2242 get_tex_parameterIiv(struct gl_context *ctx,
2251 get_tex_parameteriv(ctx, obj, pname, params, dsa);
2256 get_tex_parameterIuiv(struct gl_context *ctx,
2267 get_tex_parameteriv(ctx, obj, pname, ip, dsa);
2283 GET_CURRENT_CONTEXT(ctx);
2285 obj = get_texobj_by_target(ctx, target, GL_TRUE);
2289 get_tex_parameterfv(ctx, obj, pname, params, false);
2296 GET_CURRENT_CONTEXT(ctx);
2298 obj = get_texobj_by_target(ctx, target, GL_TRUE);
2302 get_tex_parameteriv(ctx, obj, pname, params, false);
2310 GET_CURRENT_CONTEXT(ctx);
2312 texObj = get_texobj_by_target(ctx, target, GL_TRUE);
2316 get_tex_parameterIiv(ctx, texObj, pname, params, false);
2325 GET_CURRENT_CONTEXT(ctx);
2327 texObj = get_texobj_by_target(ctx, target, GL_TRUE);
2331 get_tex_parameterIuiv(ctx, texObj, pname, params, false);
2339 GET_CURRENT_CONTEXT(ctx);
2341 obj = get_texobj_by_name(ctx, texture, GL_TRUE);
2344 _mesa_error(ctx, GL_INVALID_OPERATION,
2349 get_tex_parameterfv(ctx, obj, pname, params, true);
2356 GET_CURRENT_CONTEXT(ctx);
2358 obj = get_texobj_by_name(ctx, texture, GL_TRUE);
2361 _mesa_error(ctx, GL_INVALID_OPERATION,
2366 get_tex_parameteriv(ctx, obj, pname, params, true);
2373 GET_CURRENT_CONTEXT(ctx);
2375 texObj = get_texobj_by_name(ctx, texture, GL_TRUE);
2378 _mesa_error(ctx, GL_INVALID_OPERATION,
2383 get_tex_parameterIiv(ctx, texObj, pname, params, true);
2391 GET_CURRENT_CONTEXT(ctx);
2393 texObj = get_texobj_by_name(ctx, texture, GL_TRUE);
2396 _mesa_error(ctx, GL_INVALID_OPERATION,
2401 get_tex_parameterIuiv(ctx, texObj, pname, params, true);