• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang cairo.Context类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/evmar/gocairo/cairo.Context的典型用法代码示例。如果您正苦于以下问题:Golang Context类的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Context类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: metricsFromCairo

// metricsFromCairo fills in the font metrics with the font metrics as
// measured on a cairo Context.
func (f *Font) metricsFromCairo(cr *cairo.Context) {
	ext := cairo.FontExtents{}
	cr.FontExtents(&ext)
	f.cw = int(ext.MaxXAdvance)
	f.ch = int(ext.Height)
	f.descent = int(ext.Descent)
}
开发者ID:evmar,项目名称:smash,代码行数:9,代码来源:ont.go


示例2: Use

func (f *Font) Use(cr *cairo.Context, bold bool) {
	weight := cairo.FontWeightNormal
	if bold {
		weight = cairo.FontWeightBold
	}
	cr.SelectFontFace(f.Name, cairo.FontSlantNormal, weight)
	cr.SetFontSize(float64(f.Size))
	if f.cw == 0 {
		f.metricsFromCairo(cr)
	}
}
开发者ID:evmar,项目名称:smash,代码行数:11,代码来源:ont.go


示例3: drawText

func drawText(cr *cairo.Context, mf *Font, x, y int, fg, bg *Color, line string) {
	if bg != nil {
		setColor(cr, bg)
		cr.Rectangle(float64(x), float64(y),
			float64(len(line)*mf.cw), float64(mf.ch))
		cr.Fill()
	}

	cr.MoveTo(float64(x), float64(y+mf.ch-mf.descent))
	setColor(cr, fg)
	cr.ShowText(line)
}
开发者ID:evmar,项目名称:smash,代码行数:12,代码来源:termview.go


示例4: Draw

func (l *LogView) Draw(cr *cairo.Context) {
	cr.Translate(0, float64(-l.scrollOffset))
	y := 0
	for _, e := range l.Entries {
		h := e.prompt.Height()
		if y+h >= l.scrollOffset {
			e.prompt.Draw(cr)
		}
		y += h
		cr.Translate(0, float64(h))
		if e.term != nil {
			h = e.term.Height()
			if y+h >= l.scrollOffset {
				e.term.Draw(cr)
			}
			y += h
			cr.Translate(0, float64(h))
		}
	}
	if y > l.height {
		scrollOffset := y - l.height
		if l.scrollOffset != scrollOffset {
			if l.scrollAnim != nil && l.scrollAnim.Done {
				l.scrollAnim = nil
			}
			if l.scrollAnim == nil {
				l.scrollAnim = ui.NewLerp(&l.scrollOffset, scrollOffset, 40*time.Millisecond)
				l.GetWindow().win.AddAnimation(l.scrollAnim)
			} else {
				// TODO adjust existing anim
			}
		}
	}
}
开发者ID:evmar,项目名称:smash,代码行数:34,代码来源:logview.go


示例5: Draw

func (t *TermView) Draw(cr *cairo.Context) {
	t.mf.Use(cr, false)

	t.termMu.Lock()
	defer t.termMu.Unlock()

	offset := t.term.Top * t.mf.ch
	offset = 0
	if offset > 0 {
		cr.Save()
		defer cr.Restore()
		cr.Translate(0, float64(-offset))
	}

	firstLine := offset / t.mf.ch
	if firstLine < 0 {
		firstLine = 0
	}
	lastLine := t.term.Top + t.term.Height
	if lastLine > len(t.term.Lines) {
		lastLine = len(t.term.Lines)
	}

	for row := firstLine; row < lastLine; row++ {
		drawTerminalLine(cr, t.mf, row*t.mf.ch, t.term.Lines[row])
	}

	if !t.term.HideCursor {
		ch := rune(0)
		if t.term.Row < len(t.term.Lines) &&
			t.term.Col < len(t.term.Lines[t.term.Row]) {
			ch = t.term.Lines[t.term.Row][t.term.Col].Ch
		}
		drawCursor(cr, t.mf, t.term.Row, t.term.Col, ch)
	}
}
开发者ID:evmar,项目名称:smash,代码行数:36,代码来源:termview.go


示例6: setColor

func setColor(cr *cairo.Context, color *Color) {
	cr.SetSourceRGB(float64(color.R)/0xff, float64(color.G)/0xff, float64(color.B)/0xff)
}
开发者ID:evmar,项目名称:smash,代码行数:3,代码来源:termview.go


示例7: Draw

func (w *Window) Draw(cr *cairo.Context) {
	cr.SetSourceRGB(1, 1, 1)
	cr.Paint()
	w.View.Draw(cr)
}
开发者ID:evmar,项目名称:smash,代码行数:5,代码来源:view.go



注:本文中的github.com/evmar/gocairo/cairo.Context类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang api.NewClient函数代码示例发布时间:2022-05-23
下一篇:
Golang render.New函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap