5 Commits
v0.0.5 ... 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
868ad2c32d bump version 2024-03-26 18:40:01 +01:00
fb70f8284c fixed github path, rm mkrel 2024-03-26 18:35:11 +01:00
10 changed files with 138 additions and 112 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]

View File

@@ -72,11 +72,8 @@ cover-report:
goupdate:
go get -t -u=patch ./...
buildall:
./mkrel.sh $(tool) $(VERSION)
release:
gh release create v$(VERSION) --generate-notes releases/*
gh release create v$(VERSION) --generate-notes
show-versions: buildlocal
@echo "### kageviewer version:"

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
@@ -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"
@@ -32,7 +33,7 @@ import (
)
const (
VERSION string = "0.0.5"
VERSION string = "0.0.6"
Usage string = `This is kageviewer, a shader viewer.
Usage: kageviewer [-vd] [-c <config file>] [-g geom] [-p geom] \
@@ -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)

View File

@@ -1,80 +0,0 @@
#!/bin/bash
# Copyright © 2024 Thomas von Dein
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# get list with: go tool dist list
DIST="darwin/amd64
freebsd/amd64
linux/amd64
netbsd/amd64
openbsd/amd64
windows/amd64
freebsd/arm64
linux/arm64
netbsd/arm64
openbsd/arm64
windows/arm64"
DIST="linux/amd64
windows/amd64
windows/arm64"
tool="$1"
version="$2"
if test -z "$version"; then
echo "Usage: $0 <tool name> <release version>"
exit 1
fi
rm -rf releases
mkdir -p releases
for D in $DIST; do
os=${D/\/*/}
arch=${D/*\//}
binfile="releases/${tool}-${os}-${arch}-${version}"
if test "$os" = "windows"; then
binfile="${binfile}.exe"
fi
tardir="${tool}-${os}-${arch}-${version}"
tarfile="releases/${tool}-${os}-${arch}-${version}.tar.gz"
set -x
#GOOS=${os} GOARCH=${arch} go build -tags osusergo,netgo -ldflags "-extldflags=-static" -o ${binfile}
GOOS=${os} GOARCH=${arch} go build -o ${binfile}
mkdir -p ${tardir}
cp ${binfile} README.md LICENSE ${tardir}/
echo 'tool = kageviewer
PREFIX = /usr/local
UID = root
GID = 0
install:
install -d -o $(UID) -g $(GID) $(PREFIX)/bin
install -d -o $(UID) -g $(GID) $(PREFIX)/man/man1
install -o $(UID) -g $(GID) -m 555 $(tool) $(PREFIX)/sbin/
install -o $(UID) -g $(GID) -m 444 $(tool).1 $(PREFIX)/man/man1/' > ${tardir}/Makefile
tar cpzf ${tarfile} ${tardir}
sha256sum ${binfile} | cut -d' ' -f1 > ${binfile}.sha256
sha256sum ${tarfile} | cut -d' ' -f1 > ${tarfile}.sha256
rm -rf ${tardir}
set +x
done