Несколько вопросов по HTMLayout
От: maxforme Россия  
Дата: 02.02.10 05:22
Оценка:
Здравствуйте, c-smile!

1. Есть такая особенность. когда окно сворачиваем,
lResult = HTMLayoutProcND(hWnd,message,wParam,lParam, &bHandled);
получает WM_MINIMIZE память высвобождается. Естественно отрисовка не производится.
Как мне принудительно высвободить память?
И как мне управлять отрисовкой? чтобы всё постоянно не рисовалось. а то сильно затратно выходит.

2. Когда происходит HTMLayout drag'n'drop над изображением память "жрется" неимоверными размерами (да и процессор жрется )
(видимо из-за постоянной перерисовки изображения под таскаемым нами объектом). А потом она не освобождается.
(только после WM_MINIMIZE)

3. Про пример skin ( HTMLayoutSDK\skin ) и всё что связано с подобным.
В этом примере для отображения background скина используется expand

   background-image:url(BACK.PNG);
   background-repeat:expand;
   background-position:15 15 15 15;


а для resize окна обрабатывается сообщение

  case WM_NCHITTEST:
        if(me)
          return me->hit_test( GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) );
        break;


так вот запускаешь программу. при перетаскивании отрисовка производится идеально.
Но если развернуть окно по-больше, а потом сделать по-меньше, то при перетаскивании начинаются жуткие лаги.
Если же заново запустить окно (с большими размерами), то всё норм.

Спасибо за помощь!
Re: Несколько вопросов по HTMLayout
От: c-smile Канада http://terrainformatica.com
Дата: 02.02.10 19:02
Оценка:
Здравствуйте, maxforme, Вы писали:

M>Здравствуйте, c-smile!


M>1. Есть такая особенность. когда окно сворачиваем,

M>lResult = HTMLayoutProcND(hWnd,message,wParam,lParam, &bHandled);
M>получает WM_MINIMIZE память высвобождается. Естественно отрисовка не производится.
M>Как мне принудительно высвободить память?
M>И как мне управлять отрисовкой? чтобы всё постоянно не рисовалось. а то сильно затратно выходит.


Если ты мне расскажешь что такое WM_MINIMIZE то я может быть смогу ответить.
Re: Несколько вопросов по HTMLayout
От: . Великобритания  
Дата: 03.02.10 02:55
Оценка:
On 02/02/2010 07:22, maxforme wrote:

> получает WM_MINIMIZE память высвобождается. Естественно отрисовка не

Это вроде просто Windows так работает. При минимизации главного окна приложения память из оперативной скидывается в swap. Ты, похоже, смотришь по Task Manager, там выглядит будто память освободилась, но это не так, смотри ещё колонку VM size.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: Несколько вопросов по HTMLayout
От: maxforme Россия  
Дата: 06.02.10 03:43
Оценка:
CS>Если ты мне расскажешь что такое WM_MINIMIZE то я может быть смогу ответить.

зачем так придираться ShowWindow(hwnd,SW_MINIMIZE);
Re[3]: Несколько вопросов по HTMLayout
От: cgibin  
Дата: 06.02.10 04:34
Оценка:
Здравствуйте, maxforme, Вы писали:

CS>>Если ты мне расскажешь что такое WM_MINIMIZE то я может быть смогу ответить.


M>зачем так придираться ShowWindow(hwnd,SW_MINIMIZE);


Ты всегда можешь сделать SetProcessWorkingSetSize(GetCurrentProcess(), -1, -1) Только это ни к чему хорошему не приведёт.
Re[3]: Несколько вопросов по HTMLayout
От: c-smile Канада http://terrainformatica.com
Дата: 06.02.10 08:02
Оценка:
Здравствуйте, maxforme, Вы писали:

CS>>Если ты мне расскажешь что такое WM_MINIMIZE то я может быть смогу ответить.


M>зачем так придираться ShowWindow(hwnd,SW_MINIMIZE);


У меня просто ни времени ни желания нет к кому-то придираться...

Ты написал что
a) "HTMLayoutProcND получает WM_MINIMIZE"
и b) ты вызываешь ShowWindow(hwnd,SW_MINIMIZE);
как бы очень разные по смыслу вещи.

Откуда я знаю, может ты себе объявил WM_MINIMIZE.
Я тебя и спросил что оно делает. Может конфликтует с чем у меня.
Re: Несколько вопросов по HTMLayout
От: c-smile Канада http://terrainformatica.com
Дата: 06.02.10 08:10
Оценка:
Здравствуйте, maxforme, Вы писали:

M>3. Про пример skin ( HTMLayoutSDK\skin ) и всё что связано с подобным.

M>В этом примере для отображения background скина используется expand

M>
M>   background-image:url(BACK.PNG);
M>   background-repeat:expand;
M>   background-position:15 15 15 15;
M>


Вот это твое замечание:
M>а для resize окна обрабатывается сообщение
M>
M>  case WM_NCHITTEST:
M>        if(me)
M>          return me->hit_test( GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) );
M>        break;
M>

оно к описываемой проблеме имеет какое-то отношение? Если да то какое?

M>так вот запускаешь программу. при перетаскивании отрисовка производится идеально.

M>Но если развернуть окно по-больше, а потом сделать по-меньше, то при перетаскивании начинаются жуткие лаги.
M>Если же заново запустить окно (с большими размерами), то всё норм.

skin это так называемое layered окно. Достаточно тяжелая вещь для того чтобы показываться на весь экран.
Под layered окно захватывается видеобуффер в памяти графичекой карточки (я так предполагаю) и если памяти не хватат то все плохо.
Re[2]: Несколько вопросов по HTMLayout
От: maxforme Россия  
Дата: 06.02.10 08:25
Оценка:
CS>Достаточно тяжелая вещь для того чтобы показываться на весь экран.

так у меня претензий и нет к этому.

CS>Под layered окно захватывается видеобуффер в памяти графичекой карточки (я так предполагаю) и если памяти не хватат то все плохо.


памяти у меня должно хватать.

проблема то в том что если запустить большое окно (ширина и высота большие) то всё нормально.
А если начать resize'ить любых размеров окно, то потом при перемещении появляются лаги.
Если не resize'ить то всё хорошо рисуется даже огромное окно
Re[3]: Несколько вопросов по HTMLayout
От: c-smile Канада http://terrainformatica.com
Дата: 06.02.10 17:21
Оценка:
Здравствуйте, maxforme, Вы писали:

M>А если начать resize'ить любых размеров окно, то потом при перемещении появляются лаги.


Не могу воспороизвести проблему на трех разных машинах используя skin.exe. Мы о какой ОС вообще говорим?
Re[4]: Несколько вопросов по HTMLayout
От: maxforme Россия  
Дата: 07.02.10 03:40
Оценка:
Здравствуйте, c-smile

CS>Не могу воспороизвести проблему на трех разных машинах используя skin.exe. Мы о какой ОС вообще говорим?


обидно (((

у меня

Windows XP Professional
Сборка 2600.xpsp_sp3_qfe.080423-1303(Service Pack3)


я думал, что вё это из-за background-repeat:expand;
убрал — всё равно подлагивает отрисовка по краям окна ( особенно заметно при старте перемещения )
и это всё только после resize'инга
Re[5]: Несколько вопросов по HTMLayout
От: maxforme Россия  
Дата: 22.02.10 06:39
Оценка:
UP!
Re[6]: Несколько вопросов по HTMLayout
От: Longer_wp  
Дата: 22.02.10 11:24
Оценка:
Здравствуйте, maxforme, Вы писали:

M>UP!


Сними видео. Будет понятнее о чем ты говоришь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.