/[classpath]/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
ViewVC logotype

Diff of /classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5.2.1 by gnu_andrew, Thu Jan 13 22:40:45 2005 UTC revision 1.5.2.2 by gnu_andrew, Sat Jan 15 17:02:22 2005 UTC
# Line 99  area_updated (GdkPixbufLoader *loader, Line 99  area_updated (GdkPixbufLoader *loader,
99    JNIEnv *env;    JNIEnv *env;
100    union env_union e;    union env_union e;
101    jint stride_bytes, stride_pixels, n_channels, n_pixels;    jint stride_bytes, stride_pixels, n_channels, n_pixels;
   int i, px;  
102    jintArray jpixels;      jintArray jpixels;  
103    jint *java_pixels;    jint *java_pixels;
104    guchar *gdk_pixels;    guchar *gdk_pixels;
105    
106    GdkPixbuf *pixbuf_no_alpha = NULL;    GdkPixbuf *pixbuf_no_alpha = NULL;
107    GdkPixbuf *pixbuf = NULL;    GdkPixbuf *pixbuf = NULL;
108      
109    #ifndef WORDS_BIGENDIAN
110      int i;
111    #endif
112    
113    pixbuf_no_alpha = gdk_pixbuf_loader_get_pixbuf (loader);    pixbuf_no_alpha = gdk_pixbuf_loader_get_pixbuf (loader);
114    if (pixbuf_no_alpha == NULL)    if (pixbuf_no_alpha == NULL)
115      return;      return;
# Line 129  area_updated (GdkPixbufLoader *loader, Line 132  area_updated (GdkPixbufLoader *loader,
132            gdk_pixels + (y * stride_bytes),            gdk_pixels + (y * stride_bytes),
133            (height * stride_bytes));            (height * stride_bytes));
134    
135    #ifndef WORDS_BIGENDIAN
136      /* convert pixels from 0xBBGGRRAA to 0xAARRGGBB */
137    for (i = 0; i < n_pixels; ++i)    for (i = 0; i < n_pixels; ++i)
138      {      {
139        px = java_pixels[i];        java_pixels[i] = SWAPU32 ((unsigned)java_pixels[i]);
   
       /* move alpha around (GdkPixbufLoader results are AGBR not GBRA, in  
          the lsb sense) */  
       /* px = ((px >> 24) & 0xff) | ((px << 8) & 0xffffff00); */  
   
       /* it appears to require a full byte swap, now, not just a shift to  
          the A channel. why did this change? don't know. */  
       px = ((px >>  8) & 0x00ff00ff) | ((px <<  8) & 0xff00ff00);  
       px = ((px >> 16) & 0x0000ffff) | ((px << 16) & 0xffff0000);  
   
       java_pixels[i] = px;  
140      }      }
141    #endif
142    
143    g_object_unref (pixbuf);    g_object_unref (pixbuf);
144    
# Line 176  closed (GdkPixbufLoader *loader __attrib Line 171  closed (GdkPixbufLoader *loader __attrib
171    
172    
173    
174  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState  JNIEXPORT void JNICALL
175    Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState
176    (JNIEnv *env, jobject obj)    (JNIEnv *env, jobject obj)
177  {  {
178    GdkPixbufLoader *loader = NULL;    GdkPixbufLoader *loader = NULL;
# Line 197  JNIEXPORT void JNICALL Java_gnu_java_awt Line 193  JNIEXPORT void JNICALL Java_gnu_java_awt
193    NSA_SET_PB_PTR (env, obj, loader);    NSA_SET_PB_PTR (env, obj, loader);
194  }  }
195    
196  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState  JNIEXPORT void JNICALL
197    Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState
198    (JNIEnv *env, jclass clazz)    (JNIEnv *env, jclass clazz)
199  {  {
200    (*env)->GetJavaVM(env, &vm);    (*env)->GetJavaVM(env, &vm);
# Line 213  JNIEXPORT void JNICALL Java_gnu_java_awt Line 210  JNIEXPORT void JNICALL Java_gnu_java_awt
210  }  }
211    
212    
213  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish  JNIEXPORT void JNICALL
214    Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish
215    (JNIEnv *env, jobject obj)    (JNIEnv *env, jobject obj)
216  {  {
217    GdkPixbufLoader *loader = NULL;    GdkPixbufLoader *loader = NULL;
# Line 229  JNIEXPORT void JNICALL Java_gnu_java_awt Line 227  JNIEXPORT void JNICALL Java_gnu_java_awt
227  }  }
228    
229    
230  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes  JNIEXPORT void JNICALL
231    Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes
232    (JNIEnv *env, jobject obj, jbyteArray jarr, jint len)    (JNIEnv *env, jobject obj, jbyteArray jarr, jint len)
233  {  {
234    GdkPixbufLoader *loader = NULL;    GdkPixbufLoader *loader = NULL;

Legend:
Removed from v.1.5.2.1  
changed lines
  Added in v.1.5.2.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26