Package org.apache.harmony.awt.nativebridge

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


        StringAccessor acc = AccessorFactory.getStringAccessor();

        String str = new String("Hello world!");

        long ptr1 = acc.getChars(str);
        Int8Pointer iptr1 = NativeBridge.getInstance().createInt8Pointer(ptr1);
        assertEquals(0, iptr1.get(str.length()*2));
        assertEquals(0, iptr1.get(str.length()*2+1));

        Int8Pointer iptr2 = NativeBridge.getInstance().createInt8Pointer(12, false);
        iptr2.fill((byte)0xFF, 12);
        long ptr2 = iptr2.lock();
        long ptr3 = acc.getChars(ptr2, 12, str, 6, 5);
        assertEquals(ptr2, ptr3);
        iptr2.unlock();

        assertEquals(0, acc.compareString(new String("world"), iptr2.lock(), 5));
        iptr2.unlock();

        assertEquals(0, iptr2.get(10));
        assertEquals(0, iptr2.get(11));

        iptr1.free();
        iptr2.free();
    }
View Full Code Here


    /**
     * @see org.apache.harmony.awt.wtk.NativeMouseInfo#getNumberOfButtons()
     */
    public int getNumberOfButtons() {
        int buttonCount = 1; // wild guess
        Int8Pointer mapping = bridge.createInt8Pointer(buttonCount, false);
        buttonCount = x11.XGetPointerMapping(display, mapping, buttonCount);
        return ((buttonCount > 0) ? buttonCount : -1);
    }
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

     * @return instance of KeyInfo
     */
    static KeyInfo translateEvent(X11.XKeyEvent event) {
        KeyInfo res = new KeyInfo();
        int nBytes = 255;
        Int8Pointer buffer = bridge.createInt8Pointer(nBytes, false);
        buffer.fill((byte)0, nBytes);
        CLongPointer keySymPtr = bridge.createCLongPointer(1, false);

        nBytes = x11.XLookupString(event, buffer, nBytes, keySymPtr, null);

        if (nBytes > 0) {
            String str = buffer.getStringUTF();
            res.keyChars.append(str);
        } else {
            res.keyChars.append(KeyEvent.CHAR_UNDEFINED);
        }
        int keySym = (int)keySymPtr.get(0);
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

        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

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

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.