<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
<span class="postbody">Hello,
<br>
since I had a poor performance in drawing many buttons and text input
fields at the same time into a window with wine, I applied the
DIBEngine patch (<a href="http://wiki.winehq.org/DIBEngine" target="_blank" class="postlink">http://wiki.winehq.org/DIBEngine</a>)
that is available for wine 1.1.44 (<a href="http://bugs.winehq.org/attachment.cgi?id=27879" target="_blank" class="postlink">http://bugs.winehq.org/attachment.cgi?id=27879</a>) to
the 1.1.44 version of wine and started my application program that needs
to draw many button and text input fields in a single window with the
enviroment variable "<span style="font-style: italic;">WINEDIB=ON wine
./App.exe</span>".
<br>
<br>
Now that the DIBEngine patch is applied a little speedup in the
drawing of the buttons and the text input fields is shown, but now the
problem is that they are still drawn in blocks of a subset of the total
number and then wine waits a little bit, then it draws another block of
text input fields and buttons and then wine still waits, then it draws,
and so on. The result is that my App.exe application window that is full
of buttons and text input fields is drawn in subsequent times, and
groups of buttons and input fields are drawn in blocks with a delay
between the drawing of a group of controls and the others.
<br>
<br>
The fact that not all the controls are drawn at a time but in more
times is frustrating, since the CPU is a core2duo, and I think that it
is powerful enough to draw all of the controls in the window at a time,
specially with the DIBEngine patch applied and the DIBEngine activated.
So I thought that the problem could be in the main event loop that
manages the App.exe application window, and in particular the problem
could be that the loop yields the drawing of the controls after a
certain number of controls have been drawn in order to avoid CPU high
load and then the loop starts again to draw other controls after a while
and then it stops and yields and waits again, and so on.
<br>
<br>
Where can I modify such a behaviour? In particular my App.exe
program use many gdi32 drawing commands for drawing buttons and text
input fields, so the files dlls/user32/button.c and dlls/user32/edit.c
are involved. I think that the dlls/user32/winproc.c file, where the
<br>
<br>
</span><table align="center" border="0" cellpadding="3" cellspacing="1" width="90%"><tbody><tr>          <td><span class="genmed"><b>Code:</b></span></td>
        </tr>        <tr>         <td class="code">LRESULT WINAPI EditWndProcA( HWND hwnd,
UINT msg, WPARAM wParam, LPARAM lParam )
<br>
{
<br>
return wow_handlers.edit_proc( hwnd, msg, wParam, lParam, FALSE );
<br>
}</td>        </tr></tbody></table><span class="postbody">
<br>
<br>
function is defined is the file where I should do some changes; this
function calls
<br>
<br>
</span><table align="center" border="0" cellpadding="3" cellspacing="1" width="90%"><tbody><tr>          <td><span class="genmed"><b>Code:</b></span></td>
        </tr>        <tr>         <td class="code">LRESULT EditWndProc_common( HWND hwnd,
UINT msg, WPARAM wParam, LPARAM lParam, BOOL unicode )
<br>
</td>        </tr></tbody></table><span class="postbody">
<br>
<br>
that is implemented in the dlls/user32/edit.c file, but the fact is that
in the EditWndProc_common function there are many cases like this one
that manages the various edit messages and window messages sent
<br>
<br>
</span><table align="center" border="0" cellpadding="3" cellspacing="1" width="90%"><tbody><tr>          <td><span class="genmed"><b>Code:</b></span></td>
        </tr>        <tr>         <td class="code"> switch (msg) {
<br>
case EM_GETSEL:
<br>
result = EDIT_EM_GetSel(es, (PUINT)wParam, (PUINT)lParam);
<br>
break;
<br>
....</td>        </tr></tbody></table><span class="postbody">
<br>
<br>
and I don't know how to modify the fact that the main loop of the window
should handle more messages in order to draw all of the controls at a
time and that it should not yield for waiting and then starting drawing
again after some time.
<br>
<br>
What can I do?
<br>
<br>
Thanks in advance,
<br>
<br>
AmoxT</span>                                            <br /><hr />nome.cognome @... Verifica la disponibilit� sui <a href='https://signup.live.com/signup.aspx?mkt=it-it&rollrs=12&lic=1' target='_new'>NUOVI domini</a></body>
</html>