<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">From f93a54e7447a6f30c68d31ac82637e724c3953eb Mon Sep 17 00:00:00 2001<o:p></o:p></p>
<p class="MsoNormal">From: Daniel Czarnowski <daniel.czarnowski@intel.com><o:p></o:p></p>
<p class="MsoNormal">Date: Wed, 16 Oct 2013 13:36:33 +0200<o:p></o:p></p>
<p class="MsoNormal">Subject: [PATCH]  Support of GLX_RGBA*_FLOAT_BIT*, and correct setting of the
<o:p></o:p></p>
<p class="MsoNormal"> flags. Also commented each renderType use with information  which (fbconfig<o:p></o:p></p>
<p class="MsoNormal">or context) RENDER_TYPE it is.  Changes in DMX component.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">---<o:p></o:p></p>
<p class="MsoNormal">hw/dmx/dmx_glxvisuals.c   |  4 +++-<o:p></o:p></p>
<p class="MsoNormal">hw/dmx/glxProxy/glxcmds.c | 36 +++++++++++++++++++++++++++++-------<o:p></o:p></p>
<p class="MsoNormal">2 files changed, 32 insertions(+), 8 deletions(-)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">diff --git a/hw/dmx/dmx_glxvisuals.c b/hw/dmx/dmx_glxvisuals.c<o:p></o:p></p>
<p class="MsoNormal">index 56bd67b..0cd5f21 100644<o:p></o:p></p>
<p class="MsoNormal">--- a/hw/dmx/dmx_glxvisuals.c<o:p></o:p></p>
<p class="MsoNormal">+++ b/hw/dmx/dmx_glxvisuals.c<o:p></o:p></p>
<p class="MsoNormal">@@ -448,7 +448,9 @@ GetGLXFBConfigs(Display * dpy, int glxMajorOpcode, int *nconfigs)<o:p></o:p></p>
<p class="MsoNormal">         /* Fill in derived values */<o:p></o:p></p>
<p class="MsoNormal">         config->screen = screen;<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">-        config->rgbMode = config->renderType & GLX_RGBA_BIT;<o:p></o:p></p>
<p class="MsoNormal">+        /* The rgbMode should be true for any mode which has distinguishible R, G and B components */<o:p></o:p></p>
<p class="MsoNormal">+        config->rgbMode = (config->renderType & (GLX_RGBA_BIT |<o:p></o:p></p>
<p class="MsoNormal">+                     GLX_RGBA_FLOAT_BIT_ARB | GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT)) != 0;<o:p></o:p></p>
<p class="MsoNormal">         config->colorIndexMode = !config->rgbMode;<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">         config->haveAccumBuffer =<o:p></o:p></p>
<p class="MsoNormal">diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c<o:p></o:p></p>
<p class="MsoNormal">index 8cdb25e..fb56017 100644<o:p></o:p></p>
<p class="MsoNormal">--- a/hw/dmx/glxProxy/glxcmds.c<o:p></o:p></p>
<p class="MsoNormal">+++ b/hw/dmx/glxProxy/glxcmds.c<o:p></o:p></p>
<p class="MsoNormal">@@ -123,6 +123,21 @@ GetBackEndDisplay(__GLXclientState * cl, int s)<o:p></o:p></p>
<p class="MsoNormal">     return cl->be_displays[s];<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">+/*  Convert the render type bits from fbconfig into context render type. */<o:p></o:p></p>
<p class="MsoNormal">+static int convFBconfRenderTypeBits2CtxRenderType(int fbRenderType)<o:p></o:p></p>
<p class="MsoNormal">+{<o:p></o:p></p>
<p class="MsoNormal">+    if (fbRenderType & GLX_RGBA_BIT)<o:p></o:p></p>
<p class="MsoNormal">+        return GLX_RGBA_TYPE;<o:p></o:p></p>
<p class="MsoNormal">+    if (fbRenderType & GLX_COLOR_INDEX_BIT)<o:p></o:p></p>
<p class="MsoNormal">+        return  GLX_COLOR_INDEX_TYPE;<o:p></o:p></p>
<p class="MsoNormal">+    if (fbRenderType & GLX_RGBA_FLOAT_BIT_ARB)<o:p></o:p></p>
<p class="MsoNormal">+        return GLX_RGBA_FLOAT_TYPE_ARB;<o:p></o:p></p>
<p class="MsoNormal">+    if (fbRenderType & GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT)<o:p></o:p></p>
<p class="MsoNormal">+        return GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT;<o:p></o:p></p>
<p class="MsoNormal">+    /* There's no recognized renderType in the config */<o:p></o:p></p>
<p class="MsoNormal">+    return GLX_RGBA_TYPE;<o:p></o:p></p>
<p class="MsoNormal">+}<o:p></o:p></p>
<p class="MsoNormal">+<o:p></o:p></p>
<p class="MsoNormal">/*<o:p></o:p></p>
<p class="MsoNormal">** Create a GL context with the given properties.<o:p></o:p></p>
<p class="MsoNormal">*/<o:p></o:p></p>
<p class="MsoNormal">@@ -308,12 +323,13 @@ CreateContext(__GLXclientState * cl,<o:p></o:p></p>
<p class="MsoNormal">         /* send the create context request to the back-end server */<o:p></o:p></p>
<p class="MsoNormal">         dpy = GetBackEndDisplay(cl, screen);<o:p></o:p></p>
<p class="MsoNormal">         if (glxc->pFBConfig) {<o:p></o:p></p>
<p class="MsoNormal">-            /*Since for a certain visual both RGB and COLOR INDEX<o:p></o:p></p>
<p class="MsoNormal">-             *can be on then the only parmeter to choose the renderType<o:p></o:p></p>
<p class="MsoNormal">-             * should be the class of the colormap since all 4 first
<o:p></o:p></p>
<p class="MsoNormal">-             * classes does not support RGB mode only COLOR INDEX ,<o:p></o:p></p>
<p class="MsoNormal">-             * and so TrueColor and DirectColor does not support COLOR INDEX*/<o:p></o:p></p>
<p class="MsoNormal">-            int renderType = glxc->pFBConfig->renderType;<o:p></o:p></p>
<p class="MsoNormal">+            /* For a specific visual, multiple render types (ie. both RGB and COLOR INDEX)<o:p></o:p></p>
<p class="MsoNormal">+             * can be accessible. The only parameter to choose the renderType<o:p></o:p></p>
<p class="MsoNormal">+             * should be the class of the colormap, since all 4 first classes<o:p></o:p></p>
<p class="MsoNormal">+             * does not support RGB mode only COLOR INDEX,<o:p></o:p></p>
<p class="MsoNormal">+             * and so TrueColor and DirectColor does not support COLOR INDEX.
<o:p></o:p></p>
<p class="MsoNormal">+             */<o:p></o:p></p>
<p class="MsoNormal">+                     int renderType = GLX_RGBA_TYPE;<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">             if (pVisual) {<o:p></o:p></p>
<p class="MsoNormal">                 switch (pVisual->class) {<o:p></o:p></p>
<p class="MsoNormal">@@ -329,7 +345,10 @@ CreateContext(__GLXclientState * cl,<o:p></o:p></p>
<p class="MsoNormal">                     renderType = GLX_RGBA_TYPE;<o:p></o:p></p>
<p class="MsoNormal">                     break;<o:p></o:p></p>
<p class="MsoNormal">                 }<o:p></o:p></p>
<p class="MsoNormal">+            } else {<o:p></o:p></p>
<p class="MsoNormal">+                renderType = convFBconfRenderTypeBits2CtxRenderType(glxc->pFBConfig->renderType);<o:p></o:p></p>
<p class="MsoNormal">             }<o:p></o:p></p>
<p class="MsoNormal">+<o:p></o:p></p>
<p class="MsoNormal">             if (__GLX_IS_VERSION_SUPPORTED(1, 3)) {<o:p></o:p></p>
<p class="MsoNormal">                 LockDisplay(dpy);<o:p></o:p></p>
<p class="MsoNormal">                 GetReq(GLXCreateNewContext, be_new_req);<o:p></o:p></p>
<p class="MsoNormal">@@ -3185,6 +3204,7 @@ __glXQueryContext(__GLXclientState * cl, GLbyte * pc)<o:p></o:p></p>
<p class="MsoNormal">     __GLXcontext *ctx;<o:p></o:p></p>
<p class="MsoNormal">     xGLXQueryContextReq *req;<o:p></o:p></p>
<p class="MsoNormal">     xGLXQueryContextReply reply;<o:p></o:p></p>
<p class="MsoNormal">+    int renderType;<o:p></o:p></p>
<p class="MsoNormal">     int nProps;<o:p></o:p></p>
<p class="MsoNormal">     int *sendBuf, *pSendBuf;<o:p></o:p></p>
<p class="MsoNormal">     int nReplyBytes;<o:p></o:p></p>
<p class="MsoNormal">@@ -3197,6 +3217,8 @@ __glXQueryContext(__GLXclientState * cl, GLbyte * pc)<o:p></o:p></p>
<p class="MsoNormal">         return __glXBadContext;<o:p></o:p></p>
<p class="MsoNormal">     }<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">+    renderType = convFBconfRenderTypeBits2CtxRenderType(ctx->pFBConfig->renderType);<o:p></o:p></p>
<p class="MsoNormal">+<o:p></o:p></p>
<p class="MsoNormal">     nProps = 3;<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">     reply = (xGLXQueryContextReply) {<o:p></o:p></p>
<p class="MsoNormal">@@ -3212,7 +3234,7 @@ __glXQueryContext(__GLXclientState * cl, GLbyte * pc)<o:p></o:p></p>
<p class="MsoNormal">     *pSendBuf++ = GLX_FBCONFIG_ID;<o:p></o:p></p>
<p class="MsoNormal">     *pSendBuf++ = (int) (ctx->pFBConfig->id);<o:p></o:p></p>
<p class="MsoNormal">     *pSendBuf++ = GLX_RENDER_TYPE;<o:p></o:p></p>
<p class="MsoNormal">-    *pSendBuf++ = (int) (ctx->pFBConfig->renderType);<o:p></o:p></p>
<p class="MsoNormal">+    *pSendBuf++ = renderType; /* context render type (one of GLX_*_TYPE values) */<o:p></o:p></p>
<p class="MsoNormal">     *pSendBuf++ = GLX_SCREEN;<o:p></o:p></p>
<p class="MsoNormal">     *pSendBuf++ = (int) (ctx->pScreen->myNum);<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">-- <o:p></o:p></p>
<p class="MsoNormal">1.8.1.2<o:p></o:p></p>
</div>
<p>---------------------------------------------------------------------<br>
<strong style="line-height: 11.25pt;"><span  style="font-size: 9pt; color:
#595959;"><span style="font-family: 'Arial Narrow', sans-serif;">Intel
Technology Poland sp. z o.o.<br></span></span></strong><span style="color:
#595959; font-family: 'Arial Narrow', sans-serif; font-size: 9pt; line-height:
11.25pt;">ul. S&#322owackiego 173 | 80-298 Gda&#324sk | S&#261d Rejonowy Gda&#324sk
P&#243&#322noc
| VII Wydzia&#322 Gospodarczy Krajowego Rejestru S&#261dowego - KRS 101882 | NIP
957-07-52-316 | Kapita&#322 zak&#322adowy 200.000 PLN.</span></p><p>

<span style="font-size:8.0pt;font-family:"Arial
Narrow","sans-serif";
mso-fareast-font-family:"Times New
Roman";mso-bidi-font-family:Arial;
color:#595959;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:
AR-SA">Ta wiadomo&#347&#263 wraz z za&#322&#261cznikami jest przeznaczona dla okre&#347lonego
adresata i mo&#380e zawiera&#263 informacje poufne. W razie przypadkowego otrzymania
tej wiadomo&#347ci, prosimy o powiadomienie nadawcy oraz trwa&#324e jej usuni&#281cie;
jakiekolwiek przegl&#261danie lub rozpowszechnianie jest zabronione.<br>
This e-mail and any attachments may contain confidential material for the sole
use of the intended recipient(s). If you are not the intended recipient,
please
contact the sender and delete all copies; any review or distribution by others
is strictly prohibited.</span></p><p class="MsoNormal"><o:p></o:p></p>
</body>
</html>