|
Quick Lists
|
|
Bug ID:
|
6646411
|
|
Votes
|
0
|
|
Synopsis
|
D3D: Component event is not triggered when the display mode is changed to a different resolution
|
|
Category
|
java:classes_2d
|
|
Reported Against
|
b08
|
|
Release Fixed
|
6u10(b11)
|
|
State
|
10-Fix Delivered,
Verified,
bug
|
|
Priority:
|
3-Medium
|
|
Related Bugs
|
|
|
Submit Date
|
02-JAN-2008
|
|
Description
|
I am creating a JFrame and adding a JComponent to it. I have extended from JComponent and has overridden processComponentEvent() so as to get COMPONENT_RESIZED event to recreate the back-buffer according to the new size of the frame. When I run this test on 6u10, the JComponent is not getting the COMPONENT_RESIZED event when the display mode is changed for the parent JFrame.
I reproduced this on WinXP, WinVista with ATI as well as Nvidia video boards, with 6u10 b09. This is not reproducible on earlier releases of JDK6+, Not reproducible with D3D pipeline on JDK6-FCS. Hence this is a regression in jdk6-u10.
I have attached a sample test. Execute the sample test and check whether COMPONENT RESIZED message is printed on the console. Or alternatively, check whether the contents of the frame are resized to the screen size when the display mode changes. If not, the bug is reproduced.
Posted Date : 2008-01-02 12:45:17.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
For some reason the native window doesn't receive a WM_SIZE event
when display mode is changed using IDirect3D9Device::Reset().
If a WM_SIZE message is sent to the window after successful
device reset everything works as expected.
Posted Date : 2008-01-03 02:59:05.0
I can reproduce the same issue with dx sdk samples - the
full-screen window doesn't receive WM_SIZE event.
If you minimize/maximize the window (via alt+tab),
it does receive it.
A workaround is to issue a WM_SIZE event after
successfull display change event ourselves.
Note that we do set the dimensions of the fs window
when changing DM (see Win32GraphicsDevice.setDisplayMode)
but the mechanism is such that a resize
event notification is only sent when WM_SIZE is received
by the native code in response to the resize (to avoid
duplicate events) - see Component.java's reshape(xywh) method.
Posted Date : 2008-01-03 23:14:23.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |