Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
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
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang