<Swing Dev> [OpenJDK 2D-Dev] JDK-8178091 : Bug I will workin on
Philip Race
philip.race at oracle.com
Mon Apr 17 14:24:33 UTC 2017
Per openjdk rules, we cannot review or accept webrevs hosted anywhere
other than cr.openjdk.java.net [1]
Generally you ask someone who has a login there to do it for you
Or you may try submitting the patch in-line to this email if it is short.
Not an attachment. It will get stripped.
-phil.
[1] http://openjdk.java.net/guide/changePlanning.html
On 4/17/17, 3:42 AM, Patrick Chen wrote:
> https://github.com/cloudStrif/webrev
>
>
> 2017-04-17 12:33 GMT+02:00 Patrick Chen <chen.j.patrick at gmail.com
> <mailto:chen.j.patrick at gmail.com>>:
>
> so here a webrev :
>
> 2017-04-12 23:41 GMT+02:00 Sergey Bylokhov
> <sergey.bylokhov at oracle.com <mailto:sergey.bylokhov at oracle.com>>:
>
> (CC) 2d-dev
> If some of these options helps then most probably the bug is
> in the Java2D pipeline(XRender?) and looks like this is
> duplicate of:
> https://bugs.openjdk.java.net/browse/JDK-8068529
> <https://bugs.openjdk.java.net/browse/JDK-8068529>
>
>
>>
>> OK ,
>> So I did severals tests with theses options with programms
>> using full repaint() method
>> ,and it still work well,
>> but occasionnaly ,the lag is here again ,particularly when
>> there are a lot component on the screen (Jpanel screen)
>>
>> indeed , I think it is not normal that we need theses options
>> to work well ,
>> but it seem the problem does not come from Swing package ,
>> but repaint() method in AWT package ,
>>
>> 2017-04-12 21:26 GMT+02:00 Patrick Chen
>> <chen.j.patrick at gmail.com <mailto:chen.j.patrick at gmail.com>>:
>>
>> OK ,
>> So I did severals tests with theses options with
>> programms using full repaint() method
>> ,and it still work well,
>> but occasionnaly ,the lag is here again ,particularly
>> when there are a lot component on the screen (Jpanel screen)
>>
>> indeed , I think it is not normal that we need theses
>> options to work well ,
>> but it seem the problem does not come from Swing package
>> , but repaint() method in AWT package ,
>>
>>
>>
>> 2017-04-11 19:18 GMT+02:00 Sergey Bylokhov
>> <sergey.bylokhov at oracle.com
>> <mailto:sergey.bylokhov at oracle.com>>:
>>
>>
>>> Hi ,
>>> yes ;
>>> with theses options it works !
>>> but what that means ?
>>
>> Is it works in case of any options or in some cases
>> it does not work? Please double check.
>>
>>>
>>> so it not a bug ?
>>>
>>> 2017-04-11 18:46 GMT+02:00 Sergey Bylokhov
>>> <sergey.bylokhov at oracle.com
>>> <mailto:sergey.bylokhov at oracle.com>>:
>>>
>>> Hi, Patrick.
>>> Can you please run the code using these options:
>>> -Dsun.java2d.xrender=true
>>> -Dsun.java2d.xrender=false
>>> -Dsun.java2d.opengl=true
>>> -Dsun.java2d.opengl=false
>>>
>>>
>>>>
>>>> After tests it seems that the problem doesn't
>>>> come from Timer , but
>>>> the repaint() method ,
>>>>
>>>>
>>>> even with this code the bug is here.
>>>> the bug is on Linux.
>>>>
>>>> 2017-04-11 11:07 GMT+02:00 Walter Laan
>>>> <WLaan at costengineering.eu
>>>> <mailto:WLaan at costengineering.eu>>:
>>>>
>>>> Note that the example code in JDK-8178091
>>>> sleeps on the EDT, so you’re lucky it
>>>> paints at all instead of hanging the UI.
>>>>
>>>> It looks like you adapted the code from
>>>> http://codereview.stackexchange.com/questions/29630/simple-java-animation-with-swing
>>>> <http://codereview.stackexchange.com/questions/29630/simple-java-animation-with-swing>
>>>> where no-one experienced with Swing pointed
>>>> out this error L.
>>>>
>>>> Using a javax.swing.Timer (not the
>>>> java.util.Timer!) and it runs okay (using
>>>> Win10, Java 8u101):
>>>>
>>>> *private**void*go() {
>>>>
>>>> *new*Timer(10, *new*ActionListener() {
>>>>
>>>> // _Les_ _coordonnées_ _de_ _départ_ _de_
>>>> _notre_ _rond_
>>>>
>>>> *private**int*x= pan.getPosX(), y=
>>>> pan.getPosY();
>>>>
>>>> // _Le_ _booléen_ pour _savoir_ _si_ l'on
>>>> _recule_ _ou_ non _sur_ l'axe x
>>>>
>>>> *private**boolean*backX= *false*;
>>>>
>>>> // _Le_ _booléen_ pour _savoir_ _si_ l'on
>>>> _recule_ _ou_ non _sur_ l'axe y
>>>>
>>>> *private**boolean*backY= *false*;
>>>>
>>>> @Override
>>>>
>>>> *public**void*actionPerformed(ActionEvent e) {
>>>>
>>>> // _Si_ _la_ _coordonnée_ x est
>>>> _inférieure_ à 1, on _avance_
>>>>
>>>> *if*(x< 1) {
>>>>
>>>> backX= *false*;
>>>>
>>>> }
>>>>
>>>> // _Si_ _la_ _coordonnée_ x est
>>>> _supérieure_ à _la_ _taille_ _du_ _Panneau_
>>>> _moins_ _la_ _taille_ _du_ _rond_, on _recule_
>>>>
>>>> *if*(x> pan.getWidth() - 50) {
>>>>
>>>> backX= *true*;
>>>>
>>>> }
>>>>
>>>> // _Idem_ pour l'axe y
>>>>
>>>> *if*(y< 1) {
>>>>
>>>> backY= *false*;
>>>>
>>>> }
>>>>
>>>> *if*(y> pan.getHeight() - 50) {
>>>>
>>>> backY= *true*;
>>>>
>>>> }
>>>>
>>>> // _Si_ on _avance_, on _incrémente_ _la_
>>>> _coordonnée_
>>>>
>>>> // backX est _un_ _booléen_, _donc_ !backX
>>>> _revient_ à _écrire_
>>>>
>>>> // if (backX == false)
>>>>
>>>> *if*(!backX) {
>>>>
>>>> pan.setPosX(++x);
>>>>
>>>> // _Sinon_, on _décrémente_
>>>>
>>>> }
>>>>
>>>> *else*{
>>>>
>>>> pan.setPosX(--x);
>>>>
>>>> }
>>>>
>>>> // _Idem_ pour l'axe Y
>>>>
>>>> *if*(!backY) {
>>>>
>>>> pan.setPosY(++y);
>>>>
>>>> }
>>>>
>>>> *else*{
>>>>
>>>> pan.setPosY(--y);
>>>>
>>>> }
>>>>
>>>> // On _redessine_ _notre_ _Panneau_
>>>>
>>>> pan.repaint();
>>>>
>>>> }
>>>>
>>>> }).start();
>>>>
>>>> }
>>>>
>>>> Hope that helps,
>>>>
>>>> Walter.
>>>>
>>>> *From:*swing-dev
>>>> [mailto:swing-dev-bounces at openjdk.java.net
>>>> <mailto:swing-dev-bounces at openjdk.java.net>] *On
>>>> Behalf Of *Patrick Chen
>>>> *Sent:* maandag 10 april 2017 12:23
>>>> *To:* swing-dev at openjdk.java.net
>>>> <mailto:swing-dev at openjdk.java.net>
>>>> *Subject:* Re: <Swing Dev> JDK-8178091 :
>>>> Bug I will workin on
>>>>
>>>> (edit : for example this game coded in java
>>>> : https://github.com/cloudStrif/GoldenSunD
>>>> <https://github.com/cloudStrif/GoldenSunD>
>>>> will work with java 7
>>>>
>>>> but clearly not with java8 (linux 64 bits)
>>>> because of lags)
>>>>
>>>> 2017-04-10 12:19 GMT+02:00 Patrick Chen
>>>> <chen.j.patrick at gmail.com
>>>> <mailto:chen.j.patrick at gmail.com>>:
>>>>
>>>> Hi every one ,
>>>>
>>>> just wanted to inform that I am working
>>>> to fix this bug.
>>>>
>>>> it is when we devellop animations
>>>> thanks to repaint() method ,
>>>>
>>>> for java 7 it works well
>>>>
>>>> but with java8 not ,
>>>>
>>>> (linux 64 bits it doesn't really work )
>>>>
>>>> so after watching the source code it
>>>> seem that it is not a swing problem
>>>>
>>>> but AWT : Component.java .
>>>>
>>>> thank you
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20170417/e4e93f62/attachment.html>
More information about the swing-dev
mailing list