本文整理汇总了C++中GGLContext::enable方法的典型用法代码示例。如果您正苦于以下问题:C++ GGLContext::enable方法的具体用法?C++ GGLContext::enable怎么用?C++ GGLContext::enable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GGLContext
的用法示例。
在下文中一共展示了GGLContext::enable方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gr_textEx
int gr_textEx(int x, int y, const char *s, void* pFont)
{
GGLContext *gl = gr_context;
GRFont *font = (GRFont*) pFont;
unsigned off;
unsigned cwidth;
/* Handle default font */
if (!font) font = gr_font;
gl->bindTexture(gl, &font->texture);
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
while((off = *s++)) {
off -= 32;
cwidth = 0;
if (off < 96) {
cwidth = font->offset[off+1] - font->offset[off];
gl->texCoord2i(gl, (font->offset[off]) - x, 0 - y);
gl->recti(gl, x, y, x + cwidth, y + font->cheight);
x += cwidth;
}
}
return x;
}
示例2: twgr_text
int twgr_text(int x, int y, const char *s)
{
GGLContext *gl = gr_context;
GRFont *font = gr_font;
unsigned off;
unsigned cwidth = 0;
y -= font->ascent;
gl->bindTexture(gl, &font->texture);
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
while((off = *s++)) {
off -= 32;
if (off < 96) {
cwidth = font->offset[off+1] - font->offset[off];
gl->texCoord2i(gl, (off * cwidth) - x, 0 - y);
gl->recti(gl, x, y, x + cwidth, y + font->cheight);
}
x += cwidth;
}
return x;
}
示例3: gr_text_l
int gr_text_l(int x, int y, const char *s)
{
GGLContext *gl = gr_context;
GRFont *font = gr_font_l;
unsigned off;
y -= font->ascent;
gl->bindTexture(gl, &font->texture);
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
while((off = *s++))
{
off -= 32;
if (off < 96)
{
gl->texCoord2i(gl, 0 - (gr_fb_width() - y), (off * font->cwidth) - x + 1);
gl->recti(gl, gr_fb_width() - y - font->cheight, x, gr_fb_width() - 1 - y, x + font->cwidth);
}
x += font->cwidth;
}
return x;
}
示例4: gr_text
int gr_text(int x, int y, const char *s, int bold)
{
GGLContext *gl = gr_context;
GRFont *font = gr_font;
unsigned off;
x += overscan_offset_x;
y += overscan_offset_y;
y -= font->ascent;
gl->bindTexture(gl, &font->texture);
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
while((off = *s++)) {
off -= 32;
if (off < 96) {
gl->texCoord2i(gl, (off * font->cwidth) - x, 0 - y);
gl->recti(gl, x, y, x + font->cwidth, y + font->cheight);
}
x += font->cwidth;
}
return x;
}
示例5: gr_fill
void gr_fill(int x, int y, int w, int h)
{
GGLContext *gl = gr_context;
if(gr_is_curr_clr_opaque)
gl->disable(gl, GGL_BLEND);
gl->recti(gl, x, y, x + w, y + h);
if(gr_is_curr_clr_opaque)
gl->enable(gl, GGL_BLEND);
}
示例6: gr_textExWH
int gr_textExWH(int x, int y, const char *s, void* pFont, int max_width, int max_height)
{
GGLContext *gl = gr_context;
GRFont *gfont = (GRFont*) pFont;
unsigned off, width, height, n;
int rect_x, rect_y;
wchar_t ch;
/* Handle default font */
if (!gfont) gfont = gr_font;
y -= gfont->ascent;
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
while(*s) {
if(*((unsigned char*)(s)) < 0x20) {
s++;
continue;
}
off = getCharID(s,pFont);
n = utf8_mbtowc(&ch, s, strlen(s));
if(n <= 0)
break;
s += n;
width = gfont->cwidth[off];
height = gfont->cheight[off];
memcpy(&font_ftex, &gfont->texture, sizeof(font_ftex));
font_ftex.width = width;
font_ftex.height = height;
font_ftex.stride = width;
font_ftex.data = gfont->fontdata[off];
gl->bindTexture(gl, &font_ftex);
if ((x + (int)width) < max_width)
rect_x = x + width;
else
rect_x = max_width;
if (y + height < (unsigned int)(max_height))
rect_y = y + height;
else
rect_y = max_height;
gl->texCoord2i(gl, 0 - x, 0 - y);
gl->recti(gl, x, y, rect_x, rect_y);
x += width;
if (x > max_width)
return x;
}
return x;
}
示例7: gr_blit
void gr_blit(gr_surface source, int sx, int sy, int w, int h, int dx, int dy) {
if (gr_context == NULL) {
return;
}
GGLContext *gl = gr_context;
GGLSurface *surface = (GGLSurface*)source;
if(surface->format == GGL_PIXEL_FORMAT_RGBX_8888)
gl->disable(gl, GGL_BLEND);
gl->bindTexture(gl, surface);
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
gl->texCoord2i(gl, sx - dx, sy - dy);
gl->recti(gl, dx, dy, dx + w, dy + h);
if(surface->format == GGL_PIXEL_FORMAT_RGBX_8888)
gl->enable(gl, GGL_BLEND);
}
示例8: gr_blit
void gr_blit(gr_surface source, int sx, int sy, int w, int h, int dx, int dy) {
if (gr_context == NULL) {
return;
}
GGLContext *gl = gr_context;
gl->bindTexture(gl, (GGLSurface*) source);
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
gl->texCoord2i(gl, sx - dx, sy - dy);
gl->recti(gl, dx, dy, dx + w, dy + h);
}
示例9: gr_line
void gr_line(int x0, int y0, int x1, int y1, int width)
{
GGLContext *gl = gr_context;
if(gr_is_curr_clr_opaque)
gl->disable(gl, GGL_BLEND);
const int coords0[2] = { x0 << 4, y0 << 4 };
const int coords1[2] = { x1 << 4, y1 << 4 };
gl->linex(gl, coords0, coords1, width << 4);
if(gr_is_curr_clr_opaque)
gl->enable(gl, GGL_BLEND);
}
示例10: gr_init
int gr_init(void)
{
gglInit(&gr_context);
GGLContext *gl = gr_context;
gr_init_font();
gr_vt_fd = open("/dev/tty0", O_RDWR | O_SYNC);
if (gr_vt_fd < 0) {
// This is non-fatal; post-Cupcake kernels don't have tty0.
} else if (ioctl(gr_vt_fd, KDSETMODE, (void*) KD_GRAPHICS)) {
// However, if we do open tty0, we expect the ioctl to work.
perror("failed KDSETMODE to KD_GRAPHICS on tty0");
gr_exit();
return -1;
}
gr_fb_fd = get_framebuffer(gr_framebuffer);
if (gr_fb_fd < 0) {
perror("Unable to get framebuffer.\n");
gr_exit();
return -1;
}
get_memory_surface(&gr_mem_surface);
fprintf(stderr, "framebuffer: fd %d (%d x %d)\n",
gr_fb_fd, gr_framebuffer[0].width, gr_framebuffer[0].height);
/* start with 0 as front (displayed) and 1 as back (drawing) */
gr_active_fb = 0;
if (!has_overlay)
set_active_framebuffer(0);
gl->colorBuffer(gl, &gr_mem_surface);
gl->activeTexture(gl, 0);
gl->enable(gl, GGL_BLEND);
gl->blendFunc(gl, GGL_SRC_ALPHA, GGL_ONE_MINUS_SRC_ALPHA);
#ifdef TW_SCREEN_BLANK_ON_BOOT
printf("TW_SCREEN_BLANK_ON_BOOT := true\n");
gr_fb_blank(true);
gr_fb_blank(false);
#endif
if (!alloc_ion_mem(fi.line_length * vi.yres))
allocate_overlay(gr_fb_fd, gr_framebuffer);
return 0;
}
示例11: gr_textExWH
int gr_textExWH(int x, int y, const char *s, void* pFont, int max_width, int max_height)
{
GGLContext *gl = gr_context;
GRFont *font = (GRFont*) pFont;
unsigned off;
unsigned cwidth;
int rect_x, rect_y;
/* Handle default font */
if (!font) font = gr_font;
#ifndef TW_DISABLE_TTF
if(font->type == FONT_TYPE_TTF)
return gr_ttf_textExWH(gl, x, y, s, pFont, max_width, max_height);
#endif
gl->bindTexture(gl, &font->texture);
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
while((off = *s++)) {
off -= 32;
cwidth = 0;
if (off < 96) {
cwidth = font->offset[off+1] - font->offset[off];
if ((x + (int)cwidth) < max_width)
rect_x = x + cwidth;
else
rect_x = max_width;
if (y + font->cheight < (unsigned int)(max_height))
rect_y = y + font->cheight;
else
rect_y = max_height;
gl->texCoord2i(gl, (font->offset[off]) - x, 0 - y);
gl->recti(gl, x, y, rect_x, rect_y);
x += cwidth;
if (x > max_width)
return x;
}
}
gl->disable(gl, GGL_TEXTURE_2D);
return x;
}
示例12: gr_text
int gr_text(int x, int y, const char *s)
{
GGLContext *gl = gr_context;
GRFont *gfont = gr_font;
unsigned off, width, height, font_bitmap_width, n;
y -= gfont->ascent;
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
while((off = *s)) {
if(*((unsigned char*)(s)) < 0x20) {
s++;
continue;
}
width = gfont->cwidth;
height = gfont->cheight;
off = ch_utf8_to_custom(s);
if(off >= 96)
width *= 2;
memcpy(&font_ftex, &gfont->texture, sizeof(font_ftex));
font_bitmap_width = (font.width % (font.cwidth * font_char_per_bitmap));
if(!font_bitmap_width)
font_bitmap_width = font.cwidth * font_char_per_bitmap;
font_ftex.width = font_bitmap_width;
font_ftex.stride = font_bitmap_width;
font_ftex.data = font_data[(off < 96) ? (off / font_char_per_bitmap) : ((96 + (off - 96) * 2) / font_char_per_bitmap)];
gl->bindTexture(gl, &font_ftex);
if(off >= 96)
gl->texCoord2i(gl, ((96 + (off - 96) * 2) * font.cwidth) % (font_char_per_bitmap * font.cwidth) - x, 0 - y);
else
gl->texCoord2i(gl, (off % font_char_per_bitmap) * width - x, 0 - y);
gl->recti(gl, x, y, x + width, y + height);
x += width;
n = ch_utf8_length(s);
if(n <= 0)
break;
s += n;
}
return x;
}
示例13: gr_texticon
void gr_texticon(int x, int y, gr_surface icon) {
if (gr_context == NULL || icon == NULL) {
return;
}
GGLContext* gl = gr_context;
gl->bindTexture(gl, (GGLSurface*) icon);
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
int w = gr_get_width(icon);
int h = gr_get_height(icon);
gl->texCoord2i(gl, -x, -y);
gl->recti(gl, x, y, x+gr_get_width(icon), y+gr_get_height(icon));
}
示例14: gr_text
int gr_text(int x, int y, const char *s, int bold)
{
GGLContext *gl = gr_context;
GRFont *gfont = NULL;
unsigned off, width, height, n;
wchar_t ch;
/* Handle default font */
if (!gfont) gfont = gr_font;
x += overscan_offset_x;
y += overscan_offset_y;
y -= gfont->ascent;
gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
gl->enable(gl, GGL_TEXTURE_2D);
while(*s) {
if(*((unsigned char*)(s)) < 0x20) {
s++;
continue;
}
off = getCharID(s,NULL);
n = utf8_mbtowc(&ch, s, strlen(s));
if(n <= 0)
break;
s += n;
width = gfont->cwidth[off];
height = gfont->cheight[off];
memcpy(&font_ftex, &gfont->texture, sizeof(font_ftex));
font_ftex.width = width;
font_ftex.height = height;
font_ftex.stride = width;
font_ftex.data = gfont->fontdata[off];
gl->bindTexture(gl, &font_ftex);
gl->texCoord2i(gl, 0 - x, 0 - y);
gl->recti(gl, x, y, x + width, y + height);
x += width;
}
return x;
}
示例15: gr_init
int gr_init(void)
{
GGLContext *gl;
int fd;
gglInit(&gr_context);
gl = gr_context;
gr_init_font();
fd = open("/dev/tty0", O_RDWR | O_SYNC);
if(fd < 0) return -1;
if(ioctl(fd, KDSETMODE, (void*) KD_GRAPHICS)) {
close(fd);
return -1;
}
gr_fb_fd = get_framebuffer(gr_framebuffer);
if(gr_fb_fd < 0) {
ioctl(fd, KDSETMODE, (void*) KD_TEXT);
close(fd);
return -1;
}
gr_vt_fd = fd;
/* start with 0 as front (displayed) and 1 as back (drawing) */
gr_active_fb = 0;
set_active_framebuffer(0);
gl->colorBuffer(gl, gr_framebuffer + 1);
gl->activeTexture(gl, 0);
gl->enable(gl, GGL_BLEND);
gl->blendFunc(gl, GGL_SRC_ALPHA, GGL_ONE_MINUS_SRC_ALPHA);
return 0;
}