*/
#include <stdbool.h>
+#include <stdio.h>
#include "nouveau_driver.h"
#include "nouveau_context.h"
#include "nouveau_bufferobj.h"
return false;
}
- ctx = screen->driver->context_create(screen, visual, share_ctx);
+ ctx = screen->driver->context_create(screen, api, visual, share_ctx);
if (!ctx) {
*error = __DRI_CTX_ERROR_NO_MEMORY;
return GL_FALSE;
}
+ driContextSetFlags(ctx, flags);
+
nctx = to_nouveau_context(ctx);
nctx->dri_context = dri_ctx;
dri_ctx->driverPrivate = ctx;
}
GLboolean
-nouveau_context_init(struct gl_context *ctx, struct nouveau_screen *screen,
+nouveau_context_init(struct gl_context *ctx, gl_api api,
+ struct nouveau_screen *screen,
const struct gl_config *visual, struct gl_context *share_ctx)
{
struct nouveau_context *nctx = to_nouveau_context(ctx);
nouveau_fbo_functions_init(&functions);
/* Initialize the mesa context. */
- _mesa_initialize_context(ctx, API_OPENGL_COMPAT, visual,
- share_ctx, &functions);
+ if (!_mesa_initialize_context(ctx, api, visual, share_ctx, &functions))
+ return GL_FALSE;
nouveau_state_init(ctx);
nouveau_scratch_init(ctx);
/* Enable any supported extensions. */
ctx->Extensions.EXT_blend_color = true;
ctx->Extensions.EXT_blend_minmax = true;
- ctx->Extensions.EXT_framebuffer_blit = true;
- ctx->Extensions.EXT_packed_depth_stencil = true;
ctx->Extensions.EXT_texture_filter_anisotropic = true;
ctx->Extensions.NV_texture_env_combine4 = true;
+ ctx->Const.MaxColorAttachments = 1;
+
+ /* This effectively disables 3D textures */
+ ctx->Const.Max3DTextureLevels = 1;
return GL_TRUE;
}