code: func (w *masterWindowCommon) drawChanged() bool {
  
  	contextAllCommands(w.ctx)
  	w.ctx.Reset()
  
  	cmds := w.ctx.cmds
  
  	if len(cmds) != len(w.prevCmds) {
  		return true
  	}
  
  	for i := range cmds {
  		if cmds[i].Kind != w.prevCmds[i].Kind {
  			return true
  		}
  
  		cmd := &cmds[i]
  		pcmd := &w.prevCmds[i]
  
  		switch cmds[i].Kind {
  		case command.ScissorCmd:
  			if *pcmd != *cmd {
  				return true
  			}
  
  		case command.LineCmd:
  			if *pcmd != *cmd {
  				return true
  			}
  
  		case command.RectFilledCmd:
  			if i == 0 {
  				cmd.RectFilled.Color.A = 0xff
  			}
  			if *pcmd != *cmd {
  				return true
  			}
  
  		case command.TriangleFilledCmd:
  			if *pcmd != *cmd {
  				return true
  			}
  
  		case command.CircleFilledCmd:
  			if *pcmd != *cmd {
  				return true
  			}
  
  		case command.ImageCmd:
  			if *pcmd != *cmd {
  				return true
  			}
  
  		case command.TextCmd:
  			if *pcmd != *cmd {
  				return true
  			}
  
  		default:
  			panic(UnknownCommandErr)
  		}
  	}
  
  	return false
  }
docs: // compares cmds to the last draw frame, returns true if there is a change