func (f *Frame) Resize(w, h float32) {
	f.w = graphics.MaxF(w, f.w)
	f.h = graphics.MaxF(h, f.h)
	log.Printf("current size: %d %d", f.w, f.h)
}
Resize tells the frame what its size should be.
package content
import (
	"image"
	"log"
	"github.com/google/gojiraw/content/dom"
	"github.com/google/gojiraw/graphics"
	"github.com/go-gl/gl"
)
type Frame struct {
	x, y, z float32
	w, h float32
	overElement *dom.QuadElement
	mouseDown bool
	offset graphics.Pointf
	document []dom.QuadElement
}
func (f *Frame) AddElement(p image.Point) {
	ne := len(f.document)
	nd := f.document[0 : ne+1]
	pf := graphics.Ptfi(p)
	(&nd[ne]).Init(pf)
	f.document = nd
}
func (f *Frame) FindElementAtPoint(p image.Point) (*dom.QuadElement, int) {
	pf := graphics.Ptfi(p)
	log.Printf("FindElementAtPoint %v", p)
	for i := len(f.document) - 1; i >= 0; i-- {
		if v := f.document[i].FindVertex(pf); v != -1 {
			return &f.document[i], v
		}
	}
	return nil, -1
}
func (f *Frame) MouseOver(qe *dom.QuadElement, v int) {
	log.Printf("MouseOver: %+v, %d", qe, v)
	if f.overElement != nil && f.overElement != qe {
		f.overElement.HoverOff()
	}
	f.overElement = qe
	if qe != nil {
		qe.HoverOn(v)
	}
}
func (f *Frame) Pan(dx, dy float32) {
	f.x = graphics.MinF(f.x+dx, f.w)
	f.y += graphics.MinF(f.y+dy, f.h)
	log.Printf("translation: %d %d", f.x, f.y)
}