亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? images.c

?? 用于移動設(shè)備上的java虛擬機源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * @(#)images.c	1.55 02/10/24 @(#) * * Copyright (c) 1999-2002 Sun Microsystems, Inc.  All rights reserved. * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms. */#include <stdio.h>#include <kni.h>#include <defaultLCDUI.h>#include <nativeGUI.h>#include <imageDecode.h>#include <midpMalloc.h>#include <images.h>typedef struct _mbs {    HBITMAP        bitmap;    HBITMAP        mask;    int            width;    int            height;    int            mutable;    unsigned char *image;      /* 4 bytes per pixel - rgba order */    unsigned char *imageMask;    char           prop;} myBitmapStruct;typedef struct _imgDst {    imageDstData    super;    myBitmapStruct* bitmap;    int             cmap[256];    unsigned char   tmap[256];    jboolean        mutable;    jboolean        hasColormap;    jboolean        hasTransMap;} _imageDstData, *_imageDstPtr;/* * Draw the given image data, locating its anchor point at x, y */void LCDUIdrawRegionTransform(jshort *clip, void *dst, void *img,                         jint x_dest, jint y_dest, jint anchor,                         jint x_src, jint y_src,                         jint srcWidth, jint srcHeight,                          jint transform, jboolean isRegion) {    myBitmapStruct     *p = (myBitmapStruct *)img;    HDC            hdcMem;    HBITMAP          hbmp;    int             pixel = 0;              /* makes GRAPHICS_SETUP happy */    int            dotted = 0;              /* ditto */    /* FIXME; Can we just use this instead? Then we don't have to define     *  'pixel' or 'dotted' and we don't generate pens & brushes */    /*     * HDC hdc;     * hdc = getBitmapDC(dst);     * setupClip(hdc, dst, clip);     */    GRAPHICS_SETUP(KNI_FALSE);    if (img == NULL) {        return;    }    hdcMem = CreateCompatibleDC(hdc);    CHECK_RETURN(SelectObject(hdcMem, p->bitmap));    if (transform != 0) {        customAlphaBlend(hdc, x_dest, y_dest,            hdcMem, x_src, y_src, srcWidth, srcHeight,            transform, (p->prop == HAS_ALPHA                         || p->prop == HAS_MASK) ?                         KNI_TRUE : KNI_FALSE);    } else {        switch (p->prop) {            case HAS_ALPHA: /* notice this falls to HAS_MASK                                  * when USE_ALPHA_BLEND == 0                              */#if USE_ALPHA_BLEND                customAlphaBlend(hdc, x_dest, y_dest,                       hdcMem, x_src, y_src, srcWidth, srcHeight,                                 transform, KNI_TRUE);                break;#endif            case HAS_MASK:                {                    POINT pt[3] = {{x_dest, y_dest},                                    {x_dest + srcWidth, y_dest},                                    {x_dest, y_dest + srcHeight}};                        PlgBlt(hdc, (LPPOINT)&pt, hdcMem,                            x_src, y_src, srcWidth, srcHeight, p->mask, 0, 0);                }                break;            default:                BitBlt(hdc, x_dest, y_dest, srcWidth, srcHeight,                     hdcMem, x_src, y_src, SRCCOPY);                break;        }    }    DeleteDC(hdcMem);    GRAPHICS_CLEANUP();    if (!doubleBuffer && (dst == NULL)) {        if(transform & TRANSFORM_INVERTED_AXES) {            refreshPaintWindow(y_dest, x_dest,                                y_dest + srcHeight, x_dest + srcWidth);        } else {            refreshPaintWindow(x_dest, y_dest,                                x_dest + srcWidth, y_dest + srcHeight);        }     }}/*  * Draw an image represented as an ARGB array to the screen. * If processAlpha is true, blend source pixel with the existing * pixel at the destination location. */void LCDUIdrawRGB(jshort *clip, void *dst,                  jint **rgbData, jint offset, jint scanlen, jint x, jint y,                   jint width, jint height, jboolean processAlpha) {        int             pixel = 0;              /* makes GRAPHICS_SETUP happy */    int            dotted = 0;              /* ditto */    int i, j, argb, alpha, r, g, b, c;    int imageLen;    unsigned char *destBits;    unsigned char *destPtr;    HDC            hdcMem;    HBITMAP        destHBmp;    BITMAPINFO     bi;    HGDIOBJ        oobj;        GRAPHICS_SETUP(KNI_FALSE);        imageLen = width * height << 2;        hdcMem = CreateCompatibleDC(hdc);        bi.bmiHeader.biSize          = sizeof(bi.bmiHeader);    bi.bmiHeader.biWidth         = width;    bi.bmiHeader.biHeight        = -height;    bi.bmiHeader.biPlanes        = 1;    bi.bmiHeader.biBitCount      = 32;     bi.bmiHeader.biCompression   = BI_RGB;    bi.bmiHeader.biSizeImage     = imageLen;    bi.bmiHeader.biXPelsPerMeter = 0;    bi.bmiHeader.biYPelsPerMeter = 0;    bi.bmiHeader.biClrUsed       = 0;    bi.bmiHeader.biClrImportant  = 0;                destHBmp = CreateDIBSection (hdcMem, &bi, DIB_RGB_COLORS,                                  &destBits, NULL, 0);    if (destBits != NULL) {        oobj = SelectObject(hdcMem, destHBmp);                /*         * grab the screen contents into a bitmap         * the same size as our source image         */        DB(BitBlt(hdcMem, 0, 0, width, height, hdc, x, y, SRCCOPY));                SelectObject(hdcMem, oobj);                for (j = 0; j < height; j++) {            for (i = 0; i < width; i++) {                argb = (*rgbData)[offset + (j * scanlen)+ i];                alpha = (argb >> 24) & 0xff;                r = (argb >> 16) & 0xff;                g = (argb >> 8) & 0xff;                b = argb & 0xff;                                if (alpha == 0xff || processAlpha == KNI_FALSE) {                    /* fully opaque - copy pix from rgb array to DIB */                    destPtr = destBits + ((j * width + i) << 2);                    *destPtr++ = b; /* dest pixels seem to be in BGRA order */                    *destPtr++ = g;                      *destPtr++ = r;                       } else if (alpha != 0x00) {                    /* blend the pixel with the one from the DIB and                       send the result to the DIB */                    destPtr = destBits + ((j * width + i) << 2);                                        c = b + ((*destPtr * (0xff - alpha)) / 0xff);                    if (c > 0xff) c = 0xff;                    *destPtr++ = (unsigned char)c;                                        c = g + ((*destPtr * (0xff - alpha)) / 0xff);                    if (c > 0xff) c = 0xff;                    *destPtr++ = (unsigned char)c;                                        c = r + ((*destPtr * (0xff - alpha)) / 0xff);                    if (c > 0xff) c = 0xff;                    *destPtr++ = (unsigned char)c;                }            }        }            SetDIBitsToDevice(hdc, x, y, width, height, 0, 0, 0, height,                           destBits, &bi, DIB_RGB_COLORS);    }    /* Delete the DIB */    DeleteObject(destHBmp);    DeleteDC(hdcMem);    DeleteObject(oobj);        GRAPHICS_CLEANUP();        if (!doubleBuffer && (dst == NULL)) {        refreshPaintWindow(x, y, x + width, y + height);    }    }/* * Copy the specified region of the given image data to a new * destination, locating its anchor point at x, y. */void LCDUIcopyArea(short *clip, void *dst, int x_src, int y_src,               int width, int height, int x_dest, int y_dest,               int anchor) {    HDC hdcMem;    HBITMAP hbmp;    int pixel = 0;    int dotted = 0;    GRAPHICS_SETUP(KNI_TRUE);    switch (anchor & (LEFT | RIGHT | HCENTER)) {    default:    case LEFT:        break;            case RIGHT:        x_dest -= width;        break;            case HCENTER:        x_dest -= width >> 1;        break;    }        switch (anchor & (TOP | BOTTOM | VCENTER)) {    default:    case TOP:        break;            case BOTTOM:        y_dest -= height;        break;            case VCENTER:        y_dest -= height >> 1;        break;    }        BitBlt(hdc, x_dest, y_dest, width, height, hdc, x_src, y_src, SRCCOPY);    GRAPHICS_CLEANUP();}/* * Given an RGB pixel (color) in 0x00RRGGBB format, return the  * actual color displayed in 0x00RRGGBB format. */intLCDUIgetDisplayColor(int color){    int cr;  /* in 0x00BBGGRR format */    int r, g, b;    cr = makeImagePixel(color);    r = GetRValue(cr);    g = GetGValue(cr);    b = GetBValue(cr);    return ((r << 16) | (g << 8) | b) & 0xffffff;}    static intmakeImagePixel(int rgb) {    int r = (rgb >> 16) & 0xff;    int g = (rgb >> 8)  & 0xff;    int b = (rgb >> 0)  & 0xff;    return LCDUIgetPixel(rgb, (r*76 + g*150 + b*29) >> 8, (numColors < 256));}/*  * fill rgbBuffer with pixels in 0xAARRGGBB format  * assume that (*rgbBuffer) can move, as it is on the java heap * * implements this function: *   rgbData[offset + (a - x) + (b - y) * scanlength] = P(a, b) *       for *   x <= a < x + width *   y <= b < y + height */void LCDUIgetRGB(int** rgbBuffer, int offset, int scanLength,            int x, int y, int width, int height, void *img){    int curX;     int curY;    int curOffset = offset; /* current offset in output array */    int argb;    unsigned char r;    unsigned char g;    unsigned char b;    unsigned char alpha;    char alphaFlag = 0;    /* zero if we don't need to process                               alpha channel values */    unsigned char *pel;        myBitmapStruct *p = (myBitmapStruct *)img;    if (img == NULL) return;    if (p->prop == HAS_ALPHA)        alphaFlag = 1;    for (curY = y; curY < y + height; curY++) {        for (curX = x; curX < x + width; curX++) {            pel= p->image + ((curY * p->width + curX) << 2);                        /*             * image components in bgra order?             */            b = *pel++;            g = *pel++;            r = *pel++;            alpha = 255;  /* assume opaque */            if (alphaFlag) {                alpha = *pel;            }             argb = (alpha << 24) | (r << 16) | (g << 8) | b;                        (*rgbBuffer)[curOffset] = argb;            curOffset++;        }        curOffset += (scanLength - width);    }}static voidsetImageColormap(imageDstPtr self, long *map, int length){    _imageDstPtr p = (_imageDstPtr)self;    memcpy(p->cmap, map, length * sizeof(long));     p->hasColormap = KNI_TRUE;}static voidsetImageTransparencyMap(imageDstPtr self, unsigned char *map, int length, int palLength){    _imageDstPtr p = (_imageDstPtr)self;    if (palLength >= 0 ) {         /* we must have a palette, so assume that everything is opaque */        memset(p->tmap, 0xFF, palLength);    }    memcpy(p->tmap, map, length);     p->hasTransMap = KNI_TRUE;}static voidsetImageSize(imageDstPtr self, int width, int height) {    _imageDstPtr   p = (_imageDstPtr)self;    int            x, y;    HDC          hdc;     BITMAPINFO    bi;    hdc = GetDC(hMainWindow);    p->bitmap->width   = width;    p->bitmap->height  = height;    p->bitmap->mutable = p->mutable;        /* to do transparency and alphablending we need to have a 32bpp image     * regardless of the surface to which we will be drawing. this means     * that we must create our own bitmap and fill it in appropriately.     */    bi.bmiHeader.biSize          = sizeof(bi.bmiHeader);    bi.bmiHeader.biWidth         =  p->bitmap->width;    bi.bmiHeader.biHeight        = -p->bitmap->height;    bi.bmiHeader.biPlanes        = 1;    bi.bmiHeader.biCompression   = BI_RGB;    bi.bmiHeader.biSizeImage     = 0;    bi.bmiHeader.biBitCount      = 32;    bi.bmiHeader.biXPelsPerMeter = 0;    bi.bmiHeader.biYPelsPerMeter = 0;    bi.bmiHeader.biClrUsed       = 0;    bi.bmiHeader.biClrImportant  = 0;    p->bitmap->bitmap = CreateDIBSection(hdc, &bi, DIB_RGB_COLORS,                                          &p->bitmap->image, NULL, 0);    p->bitmap->mask              = NULL;    p->bitmap->imageMask         = NULL;    p->bitmap->prop              = HAS_SOLID;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日本欧美一区二区| 欧美精品一卡二卡| 亚洲欧美自拍偷拍| 99精品热视频| 亚洲黄一区二区三区| 欧美专区日韩专区| 视频一区国产视频| 日韩女优制服丝袜电影| 国模一区二区三区白浆| 国产精品国产三级国产aⅴ中文| 91免费视频网| 亚洲成人综合在线| 精品乱码亚洲一区二区不卡| 国产福利一区在线| 亚洲黄色免费网站| 337p亚洲精品色噜噜| 久久电影网电视剧免费观看| 久久久久久99久久久精品网站| 不卡的av电影| 午夜婷婷国产麻豆精品| 精品对白一区国产伦| 成人av动漫网站| 日韩专区中文字幕一区二区| 26uuu久久综合| 色综合网站在线| 美女在线视频一区| 国产精品久久久久久久久动漫 | 日韩三级视频中文字幕| 精品一区二区三区在线播放| 国产精品欧美极品| 欧美日韩情趣电影| 麻豆视频一区二区| 久久久蜜桃精品| 一本色道**综合亚洲精品蜜桃冫| 欧美aa在线视频| 国产女人aaa级久久久级 | 欧美一区二区不卡视频| 国产成人自拍网| 午夜精品久久久久久久| 国产精品网站一区| 日韩午夜电影在线观看| 色哟哟精品一区| 国产做a爰片久久毛片| 亚洲福利一二三区| 国产精品日韩精品欧美在线| 欧美精品精品一区| 91麻豆免费看片| 国产麻豆精品在线| 日本中文字幕一区二区有限公司| 自拍av一区二区三区| 亚洲精品在线一区二区| 激情文学综合丁香| 一区二区三区四区乱视频| 欧美激情在线一区二区| 欧美狂野另类xxxxoooo| 成人av电影免费在线播放| 蜜臀久久久99精品久久久久久| 国产精品麻豆网站| 欧美二区乱c少妇| 欧美性色黄大片| 成人三级在线视频| 男女视频一区二区| 亚洲猫色日本管| 精品国产第一区二区三区观看体验| 91视频国产观看| 国产黄色91视频| 蜜臀久久99精品久久久画质超高清| 亚洲人成人一区二区在线观看| 欧美本精品男人aⅴ天堂| 狠狠色丁香久久婷婷综合丁香| 日韩国产欧美视频| 亚洲精品成人精品456| 国产亚洲一区二区三区| 色综合久久久久综合99| 免费视频最近日韩| 亚洲午夜国产一区99re久久| 国产精品麻豆欧美日韩ww| 26uuu精品一区二区在线观看| 欧美日韩高清一区二区三区| 成人爽a毛片一区二区免费| 国产一区在线观看视频| 免费一级欧美片在线观看| 亚洲色图另类专区| 欧美日本免费一区二区三区| 欧美精品在线一区二区三区| 在线视频国产一区| 色呦呦国产精品| 99久久精品一区二区| 国产在线播放一区二区三区| 激情图区综合网| 久久精品国产99| 美国三级日本三级久久99| 亚洲一二三区在线观看| 国产精品网站在线观看| 日韩精品一区在线| 日韩免费一区二区三区在线播放| 欧美精品久久99久久在免费线| 欧美日免费三级在线| 欧美日韩一区中文字幕| 欧美日韩另类一区| 91精品国产综合久久精品图片 | 国产精品三级电影| 国产精品欧美一级免费| 亚洲欧洲三级电影| 伊人色综合久久天天| 国产精品久久精品日日| 亚洲视频香蕉人妖| 亚洲综合视频在线观看| 性做久久久久久免费观看欧美| 亚洲国产一区二区三区青草影视| 一个色妞综合视频在线观看| 亚洲一区二区三区在线| 五月婷婷欧美视频| 美女免费视频一区二区| 麻豆成人久久精品二区三区红 | 国产乱子伦视频一区二区三区| 久久av中文字幕片| 国产成人午夜高潮毛片| 99久久婷婷国产综合精品| 91电影在线观看| 91精品婷婷国产综合久久竹菊| 欧美成人video| 欧美一区二区三区播放老司机| 精品欧美乱码久久久久久1区2区| 国产午夜三级一区二区三| 亚洲视频 欧洲视频| 水蜜桃久久夜色精品一区的特点| 亚洲欧美另类在线| 蜜桃传媒麻豆第一区在线观看| 国内精品伊人久久久久av一坑 | 精品免费国产二区三区| 国产精品免费aⅴ片在线观看| 亚洲精品中文在线| 麻豆国产精品视频| 91一区二区在线观看| 日韩免费视频线观看| 久久久久国产精品免费免费搜索 | 亚洲精品视频一区| 久久精品国产77777蜜臀| 99re在线视频这里只有精品| 欧美裸体一区二区三区| 国产欧美一区二区精品性色| 亚洲国产精品一区二区久久恐怖片| 精品一区二区国语对白| 在线观看亚洲一区| 91精品麻豆日日躁夜夜躁| 亚洲另类色综合网站| 国产精品一区二区久激情瑜伽 | 天天综合色天天综合色h| 成人三级在线视频| 久久影院午夜论| 中文字幕亚洲区| 久久99久久99| 99国产精品国产精品毛片| 欧美mv和日韩mv国产网站| 亚洲精品日韩一| 成人福利电影精品一区二区在线观看| 色综合久久88色综合天天免费| 欧美日韩高清一区二区| 亚洲欧洲三级电影| 国产福利一区二区三区视频| 欧美一级理论片| 国产日韩精品久久久| 免费观看在线色综合| 色噜噜狠狠成人中文综合| 亚洲国产高清aⅴ视频| 蜜桃视频一区二区三区| 欧美日韩电影在线| 一区二区免费视频| 色综合久久99| 中文字幕一区二区5566日韩| 丰满岳乱妇一区二区三区| 日韩免费视频线观看| 免费在线观看视频一区| 欧美猛男男办公室激情| 免费成人av在线播放| 欧美日韩精品一区二区三区四区 | 国产欧美一区视频| 国产精品一区二区你懂的| 精品国一区二区三区| 蜜臀国产一区二区三区在线播放| 欧美二区三区的天堂| 亚洲精品日日夜夜| 成人一道本在线| 久久久精品国产免费观看同学| 精品在线一区二区三区| 欧美mv日韩mv| 国产精品中文字幕欧美| 欧美最新大片在线看| 一区二区国产视频| 欧美日韩精品免费观看视频| 亚洲va韩国va欧美va| 国产激情一区二区三区四区| 久久久一区二区三区捆绑**| 久久激五月天综合精品| 欧美放荡的少妇| 国产麻豆一精品一av一免费| 国产偷国产偷亚洲高清人白洁| 成人一区二区三区中文字幕| 亚洲欧洲99久久|