Package org.apache.harmony.awt.nativebridge

Examples of org.apache.harmony.awt.nativebridge.Int8Pointer


    // Caller should free native pointer to rects after using it
    private static final X11.XRectangle createXRects(int[] vertices) {
        int rectsSize = (vertices[0]-1) << 1; // sizeof(XRectangle) = 8

        Int8Pointer rects = NativeBridge.getInstance().createInt8Pointer(rectsSize, true);
        int idx = 0;
        for (int i = 1; i < vertices[0]; i+=4) {
            X11.XRectangle r = x11.createXRectangle(rects.getElementPointer(idx));
            r.set_x((short) vertices[i]);
            r.set_y((short) vertices[i+1]);
            r.set_width((short) (vertices[i+2]-vertices[i]+1));
            r.set_height((short) (vertices[i+3]-vertices[i+1]+1));
            idx += r.size();
View Full Code Here


        getClipRects();
    }

    private MultiRectArea decodeComplexRgn(long hRgn, int dx, int dy) {
        int nBytes = win32.GetRegionData(hRgn, 0, 0);
        Int8Pointer rgnDataPtr = bridge.createInt8Pointer(nBytes, false);

        win32.GetRegionData(hRgn, nBytes, rgnDataPtr.lock());
        rgnDataPtr.unlock();
        Win32.RGNDATA rgnData = win32.createRGNDATA(rgnDataPtr);
        Win32.RGNDATAHEADER rdh = rgnData.get_rdh();
        Int8Pointer bufferPtr = rgnData.get_Buffer();

        int nCount = rdh.get_nCount();
        Rectangle rgn[] = new Rectangle[nCount];

        long rawBufferPtr = bufferPtr.lock();
        for (int i = 0; i < nCount; i++) {
            Win32.RECT nr = win32.createRECT(rawBufferPtr + i * sizeofRECT);
            Rectangle rect = factory.getRectBounds(nr);
            rect.translate(dx, dy);
            rgn[i] = rect;
        }
        bufferPtr.unlock();

        return new MultiRectArea(rgn);
    }
View Full Code Here

        getClipRects();
    }

    private MultiRectArea decodeComplexRgn(long hRgn, int dx, int dy) {
        int nBytes = win32.GetRegionData(hRgn, 0, 0);
        Int8Pointer rgnDataPtr = bridge.createInt8Pointer(nBytes, false);

        win32.GetRegionData(hRgn, nBytes, rgnDataPtr.lock());
        rgnDataPtr.unlock();
        Win32.RGNDATA rgnData = win32.createRGNDATA(rgnDataPtr);
        Win32.RGNDATAHEADER rdh = rgnData.get_rdh();
        Int8Pointer bufferPtr = rgnData.get_Buffer();

        int nCount = rdh.get_nCount();
        Rectangle rgn[] = new Rectangle[nCount];

        long rawBufferPtr = bufferPtr.lock();
        for (int i = 0; i < nCount; i++) {
            Win32.RECT nr = win32.createRECT(rawBufferPtr + i * sizeofRECT);
            Rectangle rect = factory.getRectBounds(nr);
            rect.translate(dx, dy);
            rgn[i] = rect;
        }
        bufferPtr.unlock();

        return new MultiRectArea(rgn);
    }
View Full Code Here

                int size=0;
                size = win32.ImmGetCompositionStringW(hIMC, WindowsDefs.GCS_COMPATTR,
                                                      0l, size);
                size += 2; // 0-terminator

                Int8Pointer lpBuf = nb.createInt8Pointer(size, false);               
                win32.ImmGetCompositionStringW(hIMC, WindowsDefs.GCS_COMPATTR,
                                               lpBuf, size);
                System.out.print("attrs:");
                processAttributes(size - 2, lpBuf);
            }
View Full Code Here

    // Caller should free native pointer to rects after using it
    private static final X11.XRectangle createXRects(int[] vertices) {
        int rectsSize = (vertices[0]-1) << 1; // sizeof(XRectangle) = 8

        Int8Pointer rects = NativeBridge.getInstance().createInt8Pointer(rectsSize, true);
        int idx = 0;
        for (int i = 1; i < vertices[0]; i+=4) {
            X11.XRectangle r = x11.createXRectangle(rects.getElementPointer(idx));
            r.set_x((short) vertices[i]);
            r.set_y((short) vertices[i+1]);
            r.set_width((short) (vertices[i+2]-vertices[i]+1));
            r.set_height((short) (vertices[i+3]-vertices[i+1]+1));
            idx += r.size();
View Full Code Here

        X11.Visual vis = x11.createVisual(x11.XDefaultVisual(dpy, screen));

        int size = w * h;
        int depth = x11.XDefaultDepth(dpy, screen);
        // MUST use native(not Java!) memory here:
        Int8Pointer dataPtr = nb.createInt8Pointer(size * 4, true);
        X11.XImage ximg = x11.XCreateImage(dpy, vis, depth, X11Defs.ZPixmap, 0,
                                           dataPtr, w, h, 32, 0);

        int order = X11Defs.LSBFirst;
        ximg.set_byte_order(order);
View Full Code Here

    }

    void changeWindowProperty(long winId, long property,
                              long type, long values[]) {
        int count = values.length;
        Int8Pointer dataPtr = null;

        if (count > 0) {
            CLongPointer data = bridge.createCLongPointer(count, false);
            data.set(values, 0, count);
            dataPtr = bridge.createInt8Pointer(data);
View Full Code Here

        ColorModel cm = xconf.getColorModel();
        SampleModel sm;
        DataBuffer db;
        int scanlineStride, dataType;
        int bpp = xImage.get_bits_per_pixel();
        Int8Pointer dataPtr = xImage.get_data();

        switch (bpp) {
            case 32: {
                dataType = DataBuffer.TYPE_INT;
                scanlineStride = xImage.get_bytes_per_line() >> 2;
                int size = scanlineStride * height;

                // Create data buffer
                int[] data = new int[size];
                Utils.memaccess.getInt(dataPtr.lock(), data, xImage.get_xoffset(), size);
                dataPtr.unlock();
                db = new DataBufferInt(data, size);

                break;
            }
            case 16: {
                dataType = DataBuffer.TYPE_USHORT;
                scanlineStride = xImage.get_bytes_per_line() >> 1;
                int size = scanlineStride * height;

                // Create data buffer
                short[] data = new short[size];
                Utils.memaccess.getShort(dataPtr.lock(), data, xImage.get_xoffset(), size);
                dataPtr.unlock();
                db = new DataBufferShort(data, size);

                break;
            }
            case 8:
            case 4:
            case 2:
            case 1: {
                dataType = DataBuffer.TYPE_BYTE;
                scanlineStride = xImage.get_bytes_per_line();
                int size = scanlineStride * height;

                // Create data buffer
                byte[] data = new byte[size];
                Utils.memaccess.getByte(dataPtr.lock(), data, xImage.get_xoffset(), size);
                dataPtr.unlock();
                db = new DataBufferByte(data, size);

                break;
            }
            default: {
View Full Code Here

            final int parentSize = getItemIDListSize(parentAbsoluteItemId) - 2;
            if (parentSize <= 0) {
                return itemId;
            }
            final int childSize = getItemIDListSize(itemId);
            Int8Pointer resPtr = nb.createInt8Pointer(parentSize + childSize, true); //!!! should be in native mem

            resPtr.copy(parentAbsoluteItemId, 0, parentSize);
            resPtr.copy(itemId, parentSize, childSize);

            return win32.createITEMIDLIST(resPtr);
        }
View Full Code Here

            final int parentSize = (int)(lastItemId.shortLockPointer() - absoluteItemId.shortLockPointer());
            lastItemId.unlock();
            absoluteItemId.unlock();

            Int8Pointer resPtr = nb.createInt8Pointer(parentSize + 2, true); // !!! should be in native mem
            resPtr.copy(absoluteItemId, 0, parentSize);
            resPtr.copy(lastItemId.getElementPointer(getItemIDListSize(lastItemId) - 2), parentSize, 2);
            return win32.createITEMIDLIST(resPtr);
        }
View Full Code Here

TOP

Related Classes of org.apache.harmony.awt.nativebridge.Int8Pointer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.