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


    // 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

                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);
                processAttributes(size - 2, lpBuf);
            }
            if ((idx & WindowsDefs.GCS_COMPCLAUSE) != 0) {
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

    // 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

        allWindows.remove(windowID);
    }

    public String getAtomName(long atom) {
        long atomNamePtr = x11.XGetAtomName(display, atom);
        Int8Pointer rawName = bridge.createInt8Pointer(atomNamePtr);
        String atomName = rawName.getStringUTF();
        x11.XFree(atomNamePtr);

        return atomName;
    }
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

        if (this.gBmp == null){
            long ptr = LinuxNativeFont.NativeInitGlyphBitmap(this.pFont, this.glChar);
            if (ptr != 0){
                this.gBmp = lnfw.createGlyphBitmap(ptr);
                Xft.FT_Bitmap ft_bitmap = gBmp.get_bitmap();
                Int8Pointer buffer = ft_bitmap.get_buffer();
                this.bmp_left = gBmp.get_left();
                this.bmp_top = gBmp.get_top();
                this.bmp_pitch = ft_bitmap.get_pitch();
                this.bmp_rows = ft_bitmap.get_rows();
                this.bmp_width = ft_bitmap.get_width();
                int bufSize = bmp_pitch * bmp_rows; // size of buffer
               
                bitmap = new byte[bufSize];
                buffer.get(bitmap, 0, bufSize);
                LinuxNativeFont.NativeFreeGlyphBitmap(ptr);
            }
        }

        return this.gBmp;
View Full Code Here

       
        int size = outline.get_n_points();
        float points[] = LinuxNativeFont.getPointsFromFTVector(pPointsPtr, size);

        Int16Pointer pContours = outline.get_contours(); // array of contour end points
        Int8Pointer pTags = outline.get_tags(); // an array of point tags
        int index = 0// current point's index
        int tag;        // current tag
        float x_start;
        float y_start;
        float x_finish;
        float y_finish;
        for (int i=0; i < n_contours; i++){
            short end = pContours.get(i);// index of the last point

            // get start position
            x_start = points[index*2];
            y_start = points[index*2 + 1];
           
            // get finish position
            x_finish = points[end*2];
            y_finish = points[end*2 + 1];

            tag = pTags.get(index);// tag of the current point

            if (tag == LinuxNativeFontWrapper.FT_CURVE_TAG_CONIC){
                tag = pTags.get(end);// tag of the last point
                if ((tag & LinuxNativeFontWrapper.FT_CURVE_TAG_ON)==0){
                    x_start = x_finish;
                    y_start = y_finish;
                    end--;
                } else {
                    x_start = (x_start + x_finish)/2;

                    y_start = (y_start + y_finish)/2;
                    x_finish = x_start;
                    y_finish = y_start;
                    index --;
                }
            }

            gp.moveTo(x_start, y_start);

            while(index < end){
                index++;

                tag = pTags.get(index);// tag of the current point
                switch((tag & 3)){
                    case(LinuxNativeFontWrapper.FT_CURVE_TAG_ON):
                        float x = points[index*2];
                        float y = points[index*2 + 1];
                        gp.lineTo(x, y);
//                      System.out.println("AddPoint [" + x + "," + y + "]");
                        break;
                    case(LinuxNativeFontWrapper.FT_CURVE_TAG_CONIC):
                        float x1 = points[index*2];
                        float y1 = points[index*2 + 1];

                        float x2;
                        float y2;
                        while (index < end){
                            index++;
                            tag = pTags.get(index);// tag of the current point
                            x2 = points[index*2];
                            y2 = points[index*2 + 1];
                            if ((tag & LinuxNativeFontWrapper.FT_CURVE_TAG_ON) != 0){
                                gp.quadTo(x1, y1, x2, y2);
//                              System.out.println("AddQSpline 1[" + x1 + "," + y1 + "][" + x2 + "," + y2 + "]");
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

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.