<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>1120</bug_id>
          
          <creation_ts>2015-01-23 01:18:14 +0100</creation_ts>
          <short_desc>Refine HiDPI Support</short_desc>
          <delta_ts>2019-04-04 21:17:37 +0200</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>core</component>
          <version>2.3.0</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>1373</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sven Gothel">sgothel</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>askinner</cc>
    
    <cc>sgothel</cc>
          
          <cf_type>---</cf_type>
          <cf_scm_refs>1341fe0216e4f12d7243e98290cc97824b1c0b5c
6516a52d3da5cced924db63b64af911d55355325</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>4532</commentid>
    <comment_count>0</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-01-23 01:18:14 +0100</bug_when>
    <thetext>- Standalone NativeWindow getScale/convert method w/o window creation.
  Here a given rectangular area shall be used to query the 
  return the monitor/screen index with highest coverage 
  and its pixel-scale.

- Use fractional scale

- Figure out how to receive pixel accurate mouse coordinates 
  from mouse events on (OSX, AWT + NEWT)

- Figure out how to round a fractional scale conversion 
  and avoid distortion scaling pixel-viewport &lt;-&gt; window-viewport</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4533</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-01-23 01:20:07 +0100</bug_when>
    <thetext>(In reply to comment #0)
&gt; - Standalone NativeWindow getScale/convert method w/o window creation.
&gt;   Here a given rectangular area shall be used to query the 
&gt;   return the monitor/screen index with highest coverage 
&gt;   and its pixel-scale.
&gt; 
&gt; - Use fractional scale
&gt; 
&gt; - Figure out how to receive pixel accurate mouse coordinates 
&gt;   from mouse events on (OSX, AWT + NEWT)
&gt; 
&gt; - Figure out how to round a fractional scale conversion 
&gt;   and avoid distortion scaling pixel-viewport &lt;-&gt; window-viewport

- Also ensure a change of pixel-size will be propagated 
  to AWT elements.
  Note: On NEWT this feature already works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4534</commentid>
    <comment_count>2</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-01-23 01:21:00 +0100</bug_when>
    <thetext>1341fe0216e4f12d7243e98290cc97824b1c0b5c
  Add OSXUtil.GetPixelScale(final RectangleImmutable r, final int[] screenIndexOut)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4540</commentid>
    <comment_count>3</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2015-01-27 00:50:25 +0100</bug_when>
    <thetext>commit 6516a52d3da5cced924db63b64af911d55355325:

- Use float[2] for pixel-scale.
  Utilize simple integer rounding:
    int-pixel-units = (int) ( int-window-units * pixel-scale + 0.5f )

- Provide minimum and maximum allowed pixel-scale values 
  to be set by platform, supporting generic pixel-scale validation.

- Remove &apos;OSXUtil.GetPixelScale(final RectangleImmutable r, final int[] screenIndexOut)&apos;,
  implementation for all platforms would cause huge redundancy of 
  Screen and MonitorDevice code (duplication of NEWT).

- instead, add &apos;float[2] pixelScale&apos; to NEWT&apos;s MonitorDevice

- Detect change of pixel-scale and propagate accordingly.
  This allows GLCanvas, GLJPanel and NewtCanvasAWT instances
  to be dragged between monitor devices w/ different pixel-scale.

- OSX: Handle native triggered reshape events off-thread to avoid EDT congestion
       due to locked window when consuming deferred events on EDT.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>