@Override protected final Buffer getGammaRamp(final NativeSurface surface) { final long display = surface.getDisplayHandle(); if (0 == display) { return null; } final int screenIdx = surface.getScreenIndex(); final int size = getGammaRampLength(surface); final ShortBuffer rampData = Buffers.newDirectShortBuffer(3 * size); final ShortBuffer redRampData = Buffers.slice(rampData, 0 * size, size); final ShortBuffer greenRampData = Buffers.slice(rampData, 1 * size, size); final ShortBuffer blueRampData = Buffers.slice(rampData, 2 * size, size); final boolean res = X11Lib.XF86VidModeGetGammaRamp( display, screenIdx, size, redRampData, greenRampData, blueRampData); if (!res) { return null; } if (DEBUG) { dumpRamp("GET__", size, redRampData, greenRampData, blueRampData); } return rampData; }