modules/graphics/src/main/java/com/sun/glass/ui/mac/MacView.java
Print this page
*** 24,33 ****
--- 24,34 ----
*/
package com.sun.glass.ui.mac;
import com.sun.glass.ui.Pixels;
import com.sun.glass.ui.View;
+ import com.sun.glass.ui.Window;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import java.util.Map;
import java.util.TreeSet;
*** 79,108 ****
@Override native protected void _enableInputMethodEvents(long ptr, boolean enable);
@Override protected void _uploadPixels(long ptr, Pixels pixels) {
Buffer data = pixels.getPixels();
if (data.isDirect() == true) {
! _uploadPixelsDirect(ptr, data, pixels.getWidth(), pixels.getHeight(), pixels.getScale());
} else if (data.hasArray() == true) {
if (pixels.getBytesPerComponent() == 1) {
ByteBuffer bytes = (ByteBuffer)data;
_uploadPixelsByteArray(ptr, bytes.array(), bytes.arrayOffset(),
! pixels.getWidth(), pixels.getHeight(), pixels.getScale());
} else {
IntBuffer ints = (IntBuffer)data;
_uploadPixelsIntArray(ptr, ints.array(), ints.arrayOffset(),
! pixels.getWidth(), pixels.getHeight(), pixels.getScale());
}
} else {
// gznote: what are the circumstances under which this can happen?
_uploadPixelsDirect(ptr, pixels.asByteBuffer(),
! pixels.getWidth(), pixels.getHeight(), pixels.getScale());
}
}
! native void _uploadPixelsDirect(long viewPtr, Buffer pixels, int width, int height, float scale);
! native void _uploadPixelsByteArray(long viewPtr, byte[] pixels, int offset, int width, int height, float scale);
! native void _uploadPixelsIntArray(long viewPtr, int[] pixels, int offset, int width, int height, float scale);
@Override protected long _getNativeView(long ptr) {
return ptr;
}
--- 80,134 ----
@Override native protected void _enableInputMethodEvents(long ptr, boolean enable);
@Override protected void _uploadPixels(long ptr, Pixels pixels) {
Buffer data = pixels.getPixels();
if (data.isDirect() == true) {
! _uploadPixelsDirect(ptr, data, pixels.getWidth(), pixels.getHeight(), pixels.getScaleX(), pixels.getScaleY());
} else if (data.hasArray() == true) {
if (pixels.getBytesPerComponent() == 1) {
ByteBuffer bytes = (ByteBuffer)data;
_uploadPixelsByteArray(ptr, bytes.array(), bytes.arrayOffset(),
! pixels.getWidth(), pixels.getHeight(), pixels.getScaleX(), pixels.getScaleY());
} else {
IntBuffer ints = (IntBuffer)data;
_uploadPixelsIntArray(ptr, ints.array(), ints.arrayOffset(),
! pixels.getWidth(), pixels.getHeight(), pixels.getScaleX(), pixels.getScaleY());
}
} else {
// gznote: what are the circumstances under which this can happen?
_uploadPixelsDirect(ptr, pixels.asByteBuffer(),
! pixels.getWidth(), pixels.getHeight(), pixels.getScaleX(), pixels.getScaleY());
}
}
! native void _uploadPixelsDirect(long viewPtr, Buffer pixels, int width, int height, float scaleX, float scaleY);
! native void _uploadPixelsByteArray(long viewPtr, byte[] pixels, int offset, int width, int height, float scaleX, float scaleY);
! native void _uploadPixelsIntArray(long viewPtr, int[] pixels, int offset, int width, int height, float scaleX, float scaleY);
!
! @Override
! protected void notifyResize(int width, int height) {
! Window w = getWindow();
! float sx = (w == null) ? 1.0f : w.getPlatformScaleX();
! float sy = (w == null) ? 1.0f : w.getPlatformScaleY();
! width = Math.round(width * sx);
! height = Math.round(height * sy);
! super.notifyResize(width, height);
! }
!
! @Override
! protected void notifyMouse(int type, int button, int x, int y, int xAbs,
! int yAbs, int modifiers, boolean isPopupTrigger,
! boolean isSynthesized) {
! Window w = getWindow();
! float sx = (w == null) ? 1.0f : w.getPlatformScaleX();
! float sy = (w == null) ? 1.0f : w.getPlatformScaleY();
! x = Math.round(x * sx);
! y = Math.round(y * sy);
! xAbs = Math.round(xAbs * sx);
! yAbs = Math.round(yAbs * sy);
! super.notifyMouse(type, button, x, y, xAbs, yAbs, modifiers,
! isPopupTrigger, isSynthesized);
! }
@Override protected long _getNativeView(long ptr) {
return ptr;
}