/[classpath]/classpath/native/jawt/jawt.c
ViewVC logotype

Diff of /classpath/native/jawt/jawt.c

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

revision 1.1 by fitzsim, Fri Aug 19 15:24:48 2005 UTC revision 1.2 by fitzsim, Sat Aug 20 22:46:54 2005 UTC
# Line 41  Line 41 
41  #include <jawt_md.h>  #include <jawt_md.h>
42  #include "classpath_jawt.h"  #include "classpath_jawt.h"
43    
44    #ifndef __GNUC__
45    #define __attribute__(x) /* nothing */
46    #endif
47    
48  static jint (JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface);  static jint (JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface);
49  static void (JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface);  static void (JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface);
50  static JAWT_DrawingSurfaceInfo* (JNICALL _Jv_GetDrawingSurfaceInfo)  static JAWT_DrawingSurfaceInfo* (JNICALL _Jv_GetDrawingSurfaceInfo)
# Line 74  JAWT_GetAWT (JNIEnv* env __attribute__(( Line 78  JAWT_GetAWT (JNIEnv* env __attribute__((
78  /* JAWT_DrawingSurface functions */  /* JAWT_DrawingSurface functions */
79    
80  static jint  static jint
81  (JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface)  (JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface __attribute__((unused)))
82  {  {
83    return classpath_jawt_object_lock (surface->lock);    return classpath_jawt_lock ();
84  }  }
85    
86  static void  static void
87  (JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface)  (JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface __attribute__((unused)))
88  {  {
89    classpath_jawt_object_unlock (surface->lock);    classpath_jawt_unlock ();
90  }  }
91    
92  static JAWT_DrawingSurfaceInfo*  static JAWT_DrawingSurfaceInfo*
93  (JNICALL _Jv_GetDrawingSurfaceInfo) (JAWT_DrawingSurface* surface)  (JNICALL _Jv_GetDrawingSurfaceInfo) (JAWT_DrawingSurface* surface)
94  {  {
95    if (surface == NULL)    JAWT_DrawingSurfaceInfo* surface_info;
96      JAWT_X11DrawingSurfaceInfo* surface_info_x11;
97    
98      if (surface == NULL || surface->target == NULL)
99        return NULL;
100    
101      surface_info = (JAWT_DrawingSurfaceInfo*) malloc (sizeof (JAWT_DrawingSurfaceInfo));
102    
103      if (surface_info == NULL)
104      return NULL;      return NULL;
105    
106    return surface->surface_info;    surface_info->platformInfo = malloc (sizeof (JAWT_X11DrawingSurfaceInfo));
107    
108      if (surface_info->platformInfo == NULL)
109        return NULL;
110    
111      surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface_info->platformInfo;
112    
113      surface_info_x11->display = classpath_jawt_get_default_display (surface->env,
114                                                                      surface->target);
115      surface_info_x11->drawable = classpath_jawt_get_drawable (surface->env,
116                                                                surface->target);
117      surface_info_x11->visualID = classpath_jawt_get_visualID (surface->env,
118                                                                surface->target);
119    
120      /* FIXME: also include bounding rectangle of drawing surface */
121      /* FIXME: also include current clipping region */
122    
123      return surface_info;
124  }  }
125    
126  static void  static void
# Line 119  static JAWT_DrawingSurface* Line 148  static JAWT_DrawingSurface*
148  (JNICALL _Jv_GetDrawingSurface) (JNIEnv* env, jobject canvas)  (JNICALL _Jv_GetDrawingSurface) (JNIEnv* env, jobject canvas)
149  {  {
150    JAWT_DrawingSurface* surface;    JAWT_DrawingSurface* surface;
   JAWT_X11DrawingSurfaceInfo* surface_info_x11;  
151    
152    surface = (JAWT_DrawingSurface*) malloc (sizeof (JAWT_DrawingSurface));    surface = (JAWT_DrawingSurface*) malloc (sizeof (JAWT_DrawingSurface));
153    
154    if (surface == NULL)    if (surface == NULL)
155      return NULL;      return NULL;
156    
157      surface->env = env;
158      surface->target = canvas;
159    
160    /* initialize function pointers */    /* initialize function pointers */
161    surface->GetDrawingSurfaceInfo = _Jv_GetDrawingSurfaceInfo;    surface->GetDrawingSurfaceInfo = _Jv_GetDrawingSurfaceInfo;
162    surface->FreeDrawingSurfaceInfo = _Jv_FreeDrawingSurfaceInfo;    surface->FreeDrawingSurfaceInfo = _Jv_FreeDrawingSurfaceInfo;
# Line 133  static JAWT_DrawingSurface* Line 164  static JAWT_DrawingSurface*
164    surface->Lock = _Jv_Lock;    surface->Lock = _Jv_Lock;
165    surface->Unlock = _Jv_Unlock;    surface->Unlock = _Jv_Unlock;
166    
   surface->surface_info = (JAWT_DrawingSurfaceInfo*) malloc (sizeof (JAWT_DrawingSurfaceInfo));  
   
   surface->lock = classpath_jawt_create_lock ();  
   
   if (surface->surface_info == NULL)  
     return NULL;  
   
   surface->surface_info->platformInfo = malloc (sizeof (JAWT_X11DrawingSurfaceInfo));  
   
   if (surface->surface_info->platformInfo == NULL)  
     return NULL;  
   
   surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface->surface_info->platformInfo;  
   
   surface_info_x11->display = classpath_jawt_get_default_display (env, canvas);  
   surface_info_x11->drawable = classpath_jawt_get_drawable (env, canvas);  
   surface_info_x11->visualID = classpath_jawt_get_visualID (env, canvas);  
   
   /* FIXME: also include bounding rectangle of drawing surface */  
   /* FIXME: also include current clipping region */  
   
167    return surface;    return surface;
168  }  }
169    
170  static void  static void
171  (JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface)  (JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface)
172  {  {
   classpath_jawt_destroy_lock (surface->lock);  
173    free (surface);    free (surface);
174  }  }
175    
# Line 175  static void Line 184  static void
184  {  {
185    classpath_jawt_unlock ();    classpath_jawt_unlock ();
186  }  }
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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