Remote changes at Fri Aug 11 15:18:32 EDT 2017 by chuan on vivaldi
This commit is contained in:
parent
2fd19426d9
commit
9e183c63f4
|
|
@ -213,6 +213,8 @@ int style; /* New stipple pattern for lines. */
|
||||||
*---------------------------------------------------------
|
*---------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
cairo_surface_t *stippleSurfaces;
|
||||||
|
|
||||||
void
|
void
|
||||||
grtoglSetSPattern (sttable, numstipples)
|
grtoglSetSPattern (sttable, numstipples)
|
||||||
int **sttable; /* The table of patterns */
|
int **sttable; /* The table of patterns */
|
||||||
|
|
@ -221,6 +223,8 @@ int numstipples; /* Number of stipples */
|
||||||
int i, j, k, n;
|
int i, j, k, n;
|
||||||
GLubyte *pdata;
|
GLubyte *pdata;
|
||||||
|
|
||||||
|
stippleSurfaces = malloc(sizeof(cairo_surface_t) * numstipples);
|
||||||
|
|
||||||
grTOGLStipples = (GLubyte **)mallocMagic(numstipples * sizeof(GLubyte *));
|
grTOGLStipples = (GLubyte **)mallocMagic(numstipples * sizeof(GLubyte *));
|
||||||
for (k = 0; k < numstipples; k++)
|
for (k = 0; k < numstipples; k++)
|
||||||
{
|
{
|
||||||
|
|
@ -234,6 +238,8 @@ int numstipples; /* Number of stipples */
|
||||||
pdata[n++] = (GLubyte)sttable[k][i % 8];
|
pdata[n++] = (GLubyte)sttable[k][i % 8];
|
||||||
|
|
||||||
grTOGLStipples[k] = pdata;
|
grTOGLStipples[k] = pdata;
|
||||||
|
stippleSurfaces[k] = cairo_image_surface_create_for_data(pdata, CAIRO_FORMAT_A1, 32, 32,
|
||||||
|
cairo_format_stride_for_width(CAIRO_FORMAT_A1, 32));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -259,12 +265,19 @@ int stipple; /* The stipple number to be used. */
|
||||||
oldStip = stipple;
|
oldStip = stipple;
|
||||||
GR_TOGL_FLUSH_BATCH();
|
GR_TOGL_FLUSH_BATCH();
|
||||||
if (stipple == 0 || stipple > grNumStipples) {
|
if (stipple == 0 || stipple > grNumStipples) {
|
||||||
glDisable(GL_POLYGON_STIPPLE);
|
//glDisable(GL_POLYGON_STIPPLE);
|
||||||
|
cairo_set_source_rgb(grCairoContext, 0, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
if (grTOGLStipples[stipple] == (GLubyte *)NULL) MainExit(1);
|
if (grTOGLStipples[stipple] == (GLubyte *)NULL) MainExit(1);
|
||||||
glEnable(GL_POLYGON_STIPPLE);
|
//glEnable(GL_POLYGON_STIPPLE);
|
||||||
glPolygonStipple(grTOGLStipples[stipple]);
|
//glPolygonStipple(grTOGLStipples[stipple]);
|
||||||
|
cairo_pattern_set_extend(stippleSurfaces[stipple], CAIRO_EXTEND_REPEAT);
|
||||||
|
cairo_pattern_set_filter(stippleSurfaces[stipple], CAIRO_FILTER_NEAREST);
|
||||||
|
cairo_set_source(grCairoContext, stippleSurfaces[stipple]);
|
||||||
|
cairo_mask_surface(grCairoContext, stippleSurfaces[stipple], 0.0, 0.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue