- Timestamp:
- Nov 25, 2007, 6:13:08 PM (13 years ago)
- Location:
- libcaca/trunk/caca
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/caca/caca.c
r2056 r2061 55 55 * then be displayed by the libcaca driver. 56 56 * 57 * If no cucul canvas is provided, a new one is created. Its handle can be 58 * retrieved using caca_get_canvas() and it is automatically destroyed when 59 * caca_free_display() is called. 60 * 57 61 * If an error occurs, NULL is returned and \b errno is set accordingly: 58 62 * - \c ENOMEM Not enough memory. … … 72 76 } 73 77 78 if((dp->autorelease = (cv == NULL))) 79 { 80 cv = cucul_create_canvas(0, 0); 81 } 82 83 dp->cv = cv; 84 74 85 if(cucul_manage_canvas(cv, (int (*)(void *))caca_can_resize, (void *)dp)) 75 86 { 87 if(dp->autorelease) 88 cucul_free_canvas(dp->cv); 76 89 free(dp); 77 90 seterrno(EBUSY); … … 79 92 } 80 93 81 dp->cv = cv;82 94 #if defined(USE_PLUGINS) 83 95 dp->plugin = NULL; … … 91 103 #endif 92 104 cucul_unmanage_canvas(cv, (int (*)(void *))caca_can_resize, (void *)dp); 105 if(dp->autorelease) 106 cucul_free_canvas(dp->cv); 93 107 free(dp); 94 108 seterrno(ENODEV); … … 103 117 #endif 104 118 cucul_unmanage_canvas(cv, (int (*)(void *))caca_can_resize, (void *)dp); 119 if(dp->autorelease) 120 cucul_free_canvas(dp->cv); 105 121 free(dp); 106 122 seterrno(ENODEV); … … 145 161 * attached to it afterwards. 146 162 * 163 * If the cucul canvas was automatically created by caca_create_display(), 164 * it is automatically destroyed and any handle to it becomes invalid. 165 * 147 166 * This function never fails. 148 167 * … … 158 177 #endif 159 178 cucul_unmanage_canvas(dp->cv, (int (*)(void *))caca_can_resize, (void *)dp); 179 if(dp->autorelease) 180 cucul_free_canvas(dp->cv); 160 181 free(dp); 161 182 162 183 return 0; 184 } 185 186 /** \brief Get the canvas attached to a caca graphical context. 187 * 188 * Return a handle on the \e cucul_canvas_t object that was either attached 189 * or created by caca_create_display(). 190 * 191 * This function never fails. 192 * 193 * \param dp The libcaca graphical context. 194 * \return The libcucul canvas. 195 */ 196 cucul_canvas_t * caca_get_canvas(caca_display_t *dp) 197 { 198 return dp->cv; 163 199 } 164 200 -
libcaca/trunk/caca/caca.h
r2049 r2061 155 155 __extern caca_display_t * caca_create_display(cucul_canvas_t *); 156 156 __extern int caca_free_display(caca_display_t *); 157 __extern cucul_canvas_t * caca_get_canvas(caca_display_t *); 157 158 __extern int caca_refresh_display(caca_display_t *); 158 159 __extern int caca_set_display_time(caca_display_t *, unsigned int); -
libcaca/trunk/caca/caca_internals.h
r2055 r2061 109 109 /* A link to our cucul canvas */ 110 110 cucul_canvas_t *cv; 111 int autorelease; 111 112 112 113 #if defined(USE_PLUGINS)
Note: See TracChangeset
for help on using the changeset viewer.