3 Commits
v0.0.6 ... main

Author SHA1 Message Date
3c93fde441 not needed 2025-11-26 20:58:38 +01:00
T. von Dein
3aee72e78d move to codeberg (#2) 2025-11-26 20:51:45 +01:00
a3c1a80e15 fixed code spacing 2024-04-08 10:29:27 +02:00
8 changed files with 136 additions and 27 deletions

65
.goreleaser.yaml Normal file
View File

@@ -0,0 +1,65 @@
# vim: set ts=2 sw=2 tw=0 fo=cnqoj
version: 2
before:
hooks:
- go mod tidy
gitea_urls:
api: https://codeberg.org/api/v1
download: https://codeberg.org
builds:
- env:
- CGO_ENABLED=0
goos:
- linux
- freebsd
archives:
- formats: [tar.gz]
# this name template makes the OS and Arch compatible with the results of `uname`.
name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}_{{ .Tag }}
# use zip for windows archives
format_overrides:
- goos: windows
formats: [zip]
- goos: linux
formats: [tar.gz,binary]
files:
- src: "*.md"
strip_parent: true
- src: Makefile.dist
dst: Makefile
wrap_in_directory: true
changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"
groups:
- title: Improved
regexp: '^.*?(feat|add|new)(\([[:word:]]+\))??!?:.+$'
order: 0
- title: Fixed
regexp: '^.*?(bug|fix)(\([[:word:]]+\))??!?:.+$'
order: 1
- title: Changed
order: 999
release:
header: "# Release Notes"
footer: >-
---
Full Changelog: [{{ .PreviousTag }}...{{ .Tag }}](https://codeberg.org/scip/kageviewer/compare/{{ .PreviousTag }}...{{ .Tag }})

31
.woodpecker/build.yaml Normal file
View File

@@ -0,0 +1,31 @@
matrix:
platform:
- linux/amd64
goversion:
- 1.24
labels:
platform: ${platform}
steps:
build:
when:
event: [push]
image: golang:${goversion}
commands:
- apt-get update
- apt-get install -y libasound2-dev libgl1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev libxxf86vm-dev
- go get
- go build
linter:
when:
event: [push]
image: golang:${goversion}
commands:
- apt-get update
- apt-get install -y libasound2-dev libgl1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev libxxf86vm-dev
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.5.0
- golangci-lint --version
- golangci-lint run ./...
depends_on: [build]

18
Makefile.dist Normal file
View File

@@ -0,0 +1,18 @@
# -*-make-*-
.PHONY: install all
tool = rpn
PREFIX = /usr/local
UID = root
GID = 0
all:
@echo "Type 'sudo make install' to install the tool."
@echo "To change prefix, type 'sudo make install PREFIX=/opt'"
install:
install -d -o $(UID) -g $(GID) $(PREFIX)/bin
install -d -o $(UID) -g $(GID) $(PREFIX)/share/doc
install -o $(UID) -g $(GID) -m 555 $(tool) $(PREFIX)/sbin/
install -o $(UID) -g $(GID) -m 444 *.md $(PREFIX)/share/doc/

View File

@@ -1,9 +1,10 @@
# kageviewer - Viewer for shaders written in Kage, similar to glslviewer
![Logo](https://github.com/TLINDEN/kageviewer/blob/main/.github/assets/logo.png)
![Logo](https://codeberg.org/scip/kageviewer/raw/branch/main/.github/assets/logo.png)
[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://github.com/tlinden/kageviewer/blob/master/LICENSE)
[![Go Report Card](https://goreportcard.com/badge/github.com/tlinden/kageviewer)](https://goreportcard.com/report/github.com/tlinden/kageviewer)
[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://codeberg.org/scip/kageviewer/raw/branch/main/LICENSE)
[![Go Report Card](https://goreportcard.com/badge/codeberg.org/scip/kageviewer)](https://goreportcard.com/report/codeberg.org/scip/kageviewer)
[![status-badge](https://ci.codeberg.org/api/badges/15617/status.svg)](https://ci.codeberg.org/repos/15617)
This little tool can be used to test shaders written in
[Kage](https://ebitengine.org/en/documents/shader.html), a shader meta
@@ -15,7 +16,7 @@ will be printed to STDOUT. The same applies for images.
## Screenshot
![Screenshot](https://github.com/TLINDEN/kageviewer/blob/main/.github/assets/screenshot.png)
![Screenshot](https://codeberg.org/scip/kageviewer/raw/branch/main/.github/assets/screenshot.png)
## Installation
@@ -25,7 +26,7 @@ pre built binaries are provided.
### Installation with go
```shell
go install github.com/tlinden/kageviewer@latest
go install codeberg.org/scip/kageviewer@latest
```
### Installation from source
@@ -34,8 +35,8 @@ You will need the Golang toolchain in order to build from source. GNU
Make will also help but is not strictly neccessary.
If you want to compile the tool yourself, use `git clone` to clone the
repository. Then execute `go mod tidy` to install all
dependencies. Then just enter `go build` or - if you have GNU Make
repository. Then execute `go mod tidy` to install all
dependencies. Then just enter `go build` or - if you have GNU Make
installed - `make`.
To install after building either copy the binary or execute `sudo make
@@ -128,7 +129,7 @@ Possible parameters equal the long command line options.
# Report bugs
[Please open an issue](https://github.com/TLINDEN/kageviewer/issues). Thanks!
[Please open an issue](https://codeberg.org/scip/kageviewer/issues). Thanks!
# License

View File

@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package main
import (
"errors"
"fmt"
"os"
"path/filepath"
@@ -52,8 +53,7 @@ Options:
--map-slider <name> Map Slider uniform to <name>
--map-mouse <name> Map Mouse uniform to <name>
-d --debug Show debugging output
-v --version Show program version
`
-v --version Show program version`
)
type Config struct {
@@ -81,7 +81,7 @@ func InitConfig() (*Config, error) {
// setup custom usage
flagset := flag.NewFlagSet("config", flag.ContinueOnError)
flagset.Usage = func() {
fmt.Println(Usage)
_, _ = fmt.Println(Usage)
os.Exit(0)
}
@@ -165,13 +165,13 @@ func SanitiyCheck(conf *Config) error {
geo := strings.Split(conf.Geo, "x")
if len(geo) != 2 {
return fmt.Errorf(geoerr)
return errors.New(geoerr)
}
w, errw := strconv.Atoi(geo[0])
h, errh := strconv.Atoi(geo[1])
if errw != nil || errh != nil {
return fmt.Errorf(geoerr)
return errors.New(geoerr)
}
conf.Width = w
@@ -181,13 +181,13 @@ func SanitiyCheck(conf *Config) error {
pos := strings.Split(conf.Posision, "x")
if len(geo) != 2 {
return fmt.Errorf(poserr)
return errors.New(poserr)
}
x, errx := strconv.Atoi(pos[0])
y, erry := strconv.Atoi(pos[1])
if errx != nil || erry != nil {
return fmt.Errorf(poserr)
return errors.New(poserr)
}
conf.X = x
@@ -195,11 +195,3 @@ func SanitiyCheck(conf *Config) error {
return nil
}
func fileExists(filename string) bool {
info, err := os.Stat(filename)
if os.IsNotExist(err) {
return false
}
return !info.IsDir()
}

View File

@@ -46,7 +46,9 @@ func LoadImage(name string) (*ebiten.Image, error) {
if err != nil {
return nil, err
}
defer fd.Close()
defer func() {
_ = fd.Close()
}()
img, _, err := image.Decode(fd)
if err != nil {
@@ -89,7 +91,7 @@ func (game *Game) Init() error {
game.Shader = shader
// user can customize TPS
ebiten.SetMaxTPS(game.Conf.TPS)
ebiten.SetTPS(game.Conf.TPS)
// setup shader bounds, by default we use window size
game.ShaderBounds = image.Rect(0, 0, game.Conf.Width, game.Conf.Height)

2
go.mod
View File

@@ -1,4 +1,4 @@
module github.com/tlinden/kageviewer
module codeberg.org/scip/kageviewer
go 1.22

View File

@@ -64,7 +64,7 @@ func main() {
ebiten.SetWindowSize(game.Conf.Width, game.Conf.Height)
ebiten.SetWindowTitle("Kage shader viewer")
ebiten.SetWindowResizable(true)
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
if err := ebiten.RunGame(game); err != nil {
log.Fatal(err)