| 123456789101112131415161718192021222324252627282930313233343536373839 |
- // package wctx -- глобальный контекст графики.
- package wctx
- import (
- "fmt"
- "sync"
- . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
- . "gitp78su.ipnodns.ru/svi/kern/v4/lev1"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
- . "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wtypes"
- )
- var (
- wCtx IWuiCtx
- block sync.Mutex
- )
- // GetWuiCtx -- возвращает глобальный контекст графики.
- func GetWuiCtx() IResult[IWuiCtx] {
- block.Lock()
- defer block.Unlock()
- if wCtx != nil {
- return NewRes(wCtx)
- }
- resKernCtx := kctx.GetKernelCtx()
- if resKernCtx.IsErr() {
- err := fmt.Errorf("GetWuiCtx(): in get kCtx, err=\n\t%w", resKernCtx.Err())
- return NewErr[IWuiCtx](err)
- }
- kCtx := resKernCtx.Val()
- resWuiCtx := NewLocalCtx(kCtx.Ctx())
- if resWuiCtx.IsErr() {
- err := fmt.Errorf("GetWuiCtx(): in new localCtx, err=\n\t%w", resWuiCtx.Err())
- return NewErr[IWuiCtx](err)
- }
- wCtx = resWuiCtx.Val()
- return NewRes(wCtx)
- }
|