aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesalib/configs/autoconf.in1
-rw-r--r--mesalib/src/mesa/main/bufferobj.c1
-rw-r--r--mesalib/src/mesa/main/drawpix.c2
-rw-r--r--mesalib/src/mesa/main/fbobject.c36
-rw-r--r--mesalib/src/mesa/main/mtypes.h2
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_fbo.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_manager.c5
-rw-r--r--xorg-server/xkeyboard-config/rules/base.xml.in7
-rw-r--r--xorg-server/xkeyboard-config/symbols/in83
9 files changed, 132 insertions, 11 deletions
diff --git a/mesalib/configs/autoconf.in b/mesalib/configs/autoconf.in
index ab3fe7dc4..56843037d 100644
--- a/mesalib/configs/autoconf.in
+++ b/mesalib/configs/autoconf.in
@@ -149,6 +149,7 @@ DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@
LIBDRM_LIB = @LIBDRM_LIBS@
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@
+GLPROTO_CFLAGS = @GLPROTO_CFLAGS@
EXPAT_INCLUDES = @EXPAT_INCLUDES@
# Autoconf directories
diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c
index 8b5899918..afb7999de 100644
--- a/mesalib/src/mesa/main/bufferobj.c
+++ b/mesalib/src/mesa/main/bufferobj.c
@@ -558,6 +558,7 @@ void
_mesa_init_buffer_objects( struct gl_context *ctx )
{
memset(&DummyBufferObject, 0, sizeof(DummyBufferObject));
+ _glthread_INIT_MUTEX(DummyBufferObject.Mutex);
DummyBufferObject.RefCount = 1000*1000*1000; /* never delete */
_mesa_reference_buffer_object(ctx, &ctx->Array.ArrayBufferObj,
diff --git a/mesalib/src/mesa/main/drawpix.c b/mesalib/src/mesa/main/drawpix.c
index b6a6799fd..ab6e61fe3 100644
--- a/mesalib/src/mesa/main/drawpix.c
+++ b/mesalib/src/mesa/main/drawpix.c
@@ -136,8 +136,6 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height,
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
- _mesa_finish(ctx);
-
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx,
"glCopyPixels(%d, %d, %d, %d, %s) // from %s to %s at %d, %d\n",
diff --git a/mesalib/src/mesa/main/fbobject.c b/mesalib/src/mesa/main/fbobject.c
index 7f26e0f97..0bffbcfae 100644
--- a/mesalib/src/mesa/main/fbobject.c
+++ b/mesalib/src/mesa/main/fbobject.c
@@ -384,6 +384,7 @@ _mesa_framebuffer_renderbuffer(struct gl_context *ctx,
assert(att);
_mesa_set_renderbuffer_attachment(ctx, att, rb);
}
+ rb->AttachedAnytime = GL_TRUE;
}
else {
_mesa_remove_attachment(ctx, att);
@@ -1115,6 +1116,31 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
}
+/**
+ * Invalidate a renderbuffer attachment. Called from _mesa_HashWalk().
+ */
+static void
+invalidate_rb(GLuint key, void *data, void *userData)
+{
+ struct gl_framebuffer *fb = (struct gl_framebuffer *) data;
+ struct gl_renderbuffer *rb = (struct gl_renderbuffer *) userData;
+
+ /* If this is a user-created FBO */
+ if (fb->Name) {
+ GLuint i;
+ for (i = 0; i < BUFFER_COUNT; i++) {
+ struct gl_renderbuffer_attachment *att = fb->Attachment + i;
+ if (att->Type == GL_RENDERBUFFER &&
+ att->Renderbuffer == rb) {
+ /* Mark fb status as indeterminate to force re-validation */
+ fb->_Status = 0;
+ return;
+ }
+ }
+ }
+}
+
+
/** sentinal value, see below */
#define NO_SAMPLES 1000
@@ -1207,12 +1233,10 @@ renderbuffer_storage(GLenum target, GLenum internalFormat,
rb->NumSamples = 0;
}
- /*
- test_framebuffer_completeness(ctx, fb);
- */
- /* XXX if this renderbuffer is attached anywhere, invalidate attachment
- * points???
- */
+ /* Invalidate the framebuffers the renderbuffer is attached in. */
+ if (rb->AttachedAnytime) {
+ _mesa_HashWalk(ctx->Shared->FrameBuffers, invalidate_rb, rb);
+ }
}
diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h
index d50f69fdf..2862f88da 100644
--- a/mesalib/src/mesa/main/mtypes.h
+++ b/mesalib/src/mesa/main/mtypes.h
@@ -2376,6 +2376,8 @@ struct gl_renderbuffer
GLenum DataType; /**< Type of values passed to the Get/Put functions */
GLvoid *Data; /**< This may not be used by some kinds of RBs */
+ GLboolean AttachedAnytime; /**< TRUE if it was attached to a framebuffer */
+
/* Used to wrap one renderbuffer around another: */
struct gl_renderbuffer *Wrapped;
diff --git a/mesalib/src/mesa/state_tracker/st_cb_fbo.c b/mesalib/src/mesa/state_tracker/st_cb_fbo.c
index 7e124186c..534fa7041 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_fbo.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_fbo.c
@@ -79,7 +79,11 @@ st_renderbuffer_alloc_storage(struct gl_context * ctx,
else
format = st_choose_renderbuffer_format(screen, internalFormat,
rb->NumSamples);
-
+
+ if (format == PIPE_FORMAT_NONE) {
+ return FALSE;
+ }
+
/* init renderbuffer fields */
strb->Base.Width = width;
strb->Base.Height = height;
diff --git a/mesalib/src/mesa/state_tracker/st_manager.c b/mesalib/src/mesa/state_tracker/st_manager.c
index 5684e9768..ed668d248 100644
--- a/mesalib/src/mesa/state_tracker/st_manager.c
+++ b/mesalib/src/mesa/state_tracker/st_manager.c
@@ -684,8 +684,9 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi,
if (attribs->major > 1 || attribs->minor > 0) {
_mesa_compute_version(st->ctx);
- if (st->ctx->VersionMajor < attribs->major ||
- st->ctx->VersionMajor < attribs->minor) {
+ /* is the actual version less than the requested version? */
+ if (st->ctx->VersionMajor * 10 + st->ctx->VersionMinor <
+ attribs->major * 10 + attribs->minor) {
st_destroy_context(st);
return NULL;
}
diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in
index 1f4e66896..8a83c2f0d 100644
--- a/xorg-server/xkeyboard-config/rules/base.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.xml.in
@@ -1770,6 +1770,13 @@
</variant>
<variant>
<configItem>
+ <name>mal_enhanced</name>
+ <_description>India - Malayalam enhanced INSCRIPT with Rupee Sign</_description>
+ <languageList><iso639Id>mal</iso639Id></languageList>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
<name>ori</name>
<_description>India - Oriya</_description>
<languageList>
diff --git a/xorg-server/xkeyboard-config/symbols/in b/xorg-server/xkeyboard-config/symbols/in
index 5d4dc27b2..10683855b 100644
--- a/xorg-server/xkeyboard-config/symbols/in
+++ b/xorg-server/xkeyboard-config/symbols/in
@@ -1338,3 +1338,86 @@ xkb_symbols "eng" {
include "level3(ralt_switch)"
};
+
+
+// Description : Enhanced INSCRIPT keymap for Malayalam
+// Encoding : Unicode (http://www.unicode.org)
+// Author : Mahesh T Pai <paivakil@gmail.com>
+// Date : March, 2011
+// Source : http://www.nongnu.org/smc/docs/images/ml_inscript_layout.jpg
+// Comment : Based on the Inscript Keyboard created by M Baiju
+// Mapping:
+
+partial alphanumeric_keys
+xkb_symbols "mal_enhanced" {
+
+ name[Group1] = "India - Malayalam Modified Inscript with Rupee Sign";
+
+ //From grave to backslash (\)
+
+ key <TLDE> { [ U0d4a , U0d12 ] };
+ key <AE01> { [ U0d67 , exclam ] };
+ key <AE02> { [ U0d68 , at ] };
+ key <AE03> { [ U0d69 , numbersign ] };
+ key <AE04> { [ U0d6a , dollar ] };
+ key <AE05> { [ U0d6b , percent ] };
+ key <AE06> { [ U0d6c , asciicircum ] };
+ key <AE07> { [ U0d6d , ampersand ] };
+ key <AE08> { [ U0d6e , U0d7e ] };
+ key <AE09> { [ U0d6f , parenleft ] };
+ key <AE10> { [ U0d66 , parenright ] };
+
+ key <AE11> { [ minus , U0d03 ] };
+ key <AE12> { [ U0d43 , U0d0b ] };
+ key <BKSL> { [ U0d7c , U05C ] }; //bksl: chillu RR
+
+
+ // From 'q' to right bracket (])
+
+ key <AD01> { [ U0d57 , U0d14 ] };
+ key <AD02> { [ U0d48 , U0d10 ] };
+ key <AD03> { [ U0d3e , U0d06 ] };
+ key <AD04> { [ U0d40 , U0d08 ] };
+ key <AD05> { [ U0d42 , U0d0a ] };
+ key <AD06> { [ U0d2c , U0d2d ] };
+ key <AD07> { [ U0d39 , U0d19 ] };
+ key <AD08> { [ U0d17 , U0d18 ] };
+ key <AD09> { [ U0d26 , U0d27 ] };
+ key <AD10> { [ U0d1c , U0d1d ] };
+ key <AD11> { [ U0d21 , U0d22 ] };
+ key <AD12> { [ U0200d , U0d1e ] };
+
+ // From 'a' to apostrophe (')
+
+ key <AC01> { [ U0d4b , U0d13 ] };
+ key <AC02> { [ U0d47 , U0d0f ] };
+ key <AC03> { [ U0d4d , U0d05 ] };
+ key <AC04> { [ U0d3f , U0d07 ] };
+ key <AC05> { [ U0d41 , U0d09 ] };
+ key <AC06> { [ U0d2a , U0d2b ] };
+ key <AC07> { [ U0d30 , U0d31 ] };
+ key <AC08> { [ U0d15 , U0d16 ] };
+ key <AC09> { [ U0d24 , U0d25 ] };
+ key <AC10> { [ U0d1a , U0d1b ] };
+ key <AC11> { [ U0d1f , U0d20 ] };
+
+ // From 'z' to slash (/)
+
+ key <AB01> { [ U0d46 , U0d0e ] };
+ key <AB02> { [ U0d02 , U0d7a ] };
+ key <AB03> { [ U0d2e , U0d23 ] };
+ key <AB04> { [ U0d28 , U0d7b ] };
+ key <AB05> { [ U0d35 , U0d34 ] };
+ key <AB06> { [ U0d32 , U0d33 ] };
+ key <AB07> { [ U0d38 , U0d36 ] };
+ key <AB08> { [ comma , U0d37 ] };
+ key <AB09> { [ period , U0d7d ] }; //chillu l
+ key <AB10> { [ U0d2f , question ] };
+
+ // hope this includes the rupee sign at alt + 4
+
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
+
+};
+