Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | fix x11 photo image drawing |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
7aeac931688d2525fe75008da2a9f7cc |
User & Date: | chw 2023-12-01 21:42:47.049 |
Context
2023-12-02
| ||
10:22 | add selected nats upstream changes check-in: b438cd4742 user: chw tags: trunk | |
2023-12-01
| ||
21:44 | merge with trunk check-in: 853793e8d6 user: chw tags: wtf-8-experiment | |
21:42 | fix x11 photo image drawing check-in: 7aeac93168 user: chw tags: trunk | |
16:41 | fix package index files in tcllib check-in: a182df2c7a user: chw tags: trunk | |
Changes
Changes to jni/sdl2tk/generic/tkImgPhInstance.c.
︙ | ︙ | |||
217 218 219 220 221 222 223 224 225 226 227 228 229 230 | PhotoInstance *instancePtr; Colormap colormap; int mono, nRed, nGreen, nBlue, numVisuals; XVisualInfo visualInfo, *visInfoPtr; char buf[TCL_INTEGER_SPACE * 3]; XColor *white, *black; XGCValues gcValues; /* * Table of "best" choices for palette for PseudoColor displays with * between 3 and 15 bits/pixel. */ static const int paletteChoice[13][3] = { | > > > | 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | PhotoInstance *instancePtr; Colormap colormap; int mono, nRed, nGreen, nBlue, numVisuals; XVisualInfo visualInfo, *visInfoPtr; char buf[TCL_INTEGER_SPACE * 3]; XColor *white, *black; XGCValues gcValues; #if (!defined(_WIN32) && !defined(MAC_OSX_TK)) || defined(PLATFORM_SDL) int gcmask; #endif /* * Table of "best" choices for palette for PseudoColor displays with * between 3 and 15 bits/pixel. */ static const int paletteChoice[13][3] = { |
︙ | ︙ | |||
249 250 251 252 253 254 255 | * colormap. If so then just re-use it. */ colormap = Tk_Colormap(tkwin); for (instancePtr = modelPtr->instancePtr; instancePtr != NULL; instancePtr = instancePtr->nextPtr) { if ((colormap == instancePtr->colormap) | | > > > > | 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 | * colormap. If so then just re-use it. */ colormap = Tk_Colormap(tkwin); for (instancePtr = modelPtr->instancePtr; instancePtr != NULL; instancePtr = instancePtr->nextPtr) { if ((colormap == instancePtr->colormap) && (Tk_Display(tkwin) == instancePtr->display) #if (!defined(_WIN32) && !defined(MAC_OSX_TK)) || defined(PLATFORM_SDL) && (Tk_Visual(tkwin) == instancePtr->visualInfo.visual) #endif ) { /* * Re-use this instance. */ if (instancePtr->refCount == 0) { /* * We are resurrecting this instance. |
︙ | ︙ | |||
306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 | Tcl_Panic("TkImgPhotoGet couldn't find visual for window"); } nRed = 2; nGreen = nBlue = 0; mono = 1; instancePtr->visualInfo = *visInfoPtr; switch (visInfoPtr->c_class) { case DirectColor: case TrueColor: nRed = 1 << CountBits(visInfoPtr->red_mask); nGreen = 1 << CountBits(visInfoPtr->green_mask); nBlue = 1 << CountBits(visInfoPtr->blue_mask); mono = 0; break; case PseudoColor: case StaticColor: if (visInfoPtr->depth > 15) { nRed = 32; nGreen = 32; nBlue = 32; | > > > > > > > > > > > > | 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | Tcl_Panic("TkImgPhotoGet couldn't find visual for window"); } nRed = 2; nGreen = nBlue = 0; mono = 1; instancePtr->visualInfo = *visInfoPtr; #if (!defined(_WIN32) && !defined(MAC_OSX_TK)) || defined(PLATFORM_SDL) gcmask = 0; instancePtr->visualInfo.visual = Tk_Visual(tkwin); #endif switch (visInfoPtr->c_class) { case DirectColor: case TrueColor: nRed = 1 << CountBits(visInfoPtr->red_mask); nGreen = 1 << CountBits(visInfoPtr->green_mask); nBlue = 1 << CountBits(visInfoPtr->blue_mask); mono = 0; #if (!defined(_WIN32) && !defined(MAC_OSX_TK)) || defined(PLATFORM_SDL) if (visInfoPtr->depth > 24) { gcValues.plane_mask = visInfoPtr->red_mask | visInfoPtr->green_mask | visInfoPtr->blue_mask; gcmask = GCPlaneMask; } #endif break; case PseudoColor: case StaticColor: if (visInfoPtr->depth > 15) { nRed = 32; nGreen = 32; nBlue = 32; |
︙ | ︙ | |||
357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 | gcValues.foreground = (white != NULL)? white->pixel: WhitePixelOfScreen(Tk_Screen(tkwin)); gcValues.background = (black != NULL)? black->pixel: BlackPixelOfScreen(Tk_Screen(tkwin)); Tk_FreeColor(white); Tk_FreeColor(black); gcValues.graphics_exposures = False; instancePtr->gc = Tk_GetGC(tkwin, GCForeground|GCBackground|GCGraphicsExposures, &gcValues); /* * Set configuration options and finish the initialization of the * instance. This will also dither the image if necessary. */ TkImgPhotoConfigureInstance(instancePtr); | > > > > > | 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 | gcValues.foreground = (white != NULL)? white->pixel: WhitePixelOfScreen(Tk_Screen(tkwin)); gcValues.background = (black != NULL)? black->pixel: BlackPixelOfScreen(Tk_Screen(tkwin)); Tk_FreeColor(white); Tk_FreeColor(black); gcValues.graphics_exposures = False; #if (!defined(_WIN32) && !defined(MAC_OSX_TK)) || defined(PLATFORM_SDL) instancePtr->gc = Tk_GetGC(tkwin, gcmask|GCForeground|GCBackground|GCGraphicsExposures, &gcValues); #else instancePtr->gc = Tk_GetGC(tkwin, GCForeground|GCBackground|GCGraphicsExposures, &gcValues); #endif /* * Set configuration options and finish the initialization of the * instance. This will also dither the image if necessary. */ TkImgPhotoConfigureInstance(instancePtr); |
︙ | ︙ |