[BUGFIX] splitting in parts
This commit is contained in:
parent
f42ec9e116
commit
65e3dc9ef8
13
main.go
13
main.go
|
@ -51,10 +51,15 @@ func main() {
|
||||||
|
|
||||||
// transform
|
// transform
|
||||||
|
|
||||||
pixelmatrix = getPart(pixelmatrix, partCount, partTotal, partBegin)
|
pixelmatrix, sx, sy := getPart(pixelmatrix, partCount, partTotal, partBegin)
|
||||||
|
startx += sx
|
||||||
|
starty += sy
|
||||||
|
|
||||||
for s := 0; s < socketCount; s++ {
|
for s := 0; s < socketCount; s++ {
|
||||||
conn := createSocket(getPart(pixelmatrix, 1, socketCount, s))
|
pm, sx, sy := getPart(pixelmatrix, 1, socketCount, s)
|
||||||
|
sx += startx
|
||||||
|
sy += starty
|
||||||
|
conn := createSocket(pm, sx, sy)
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,7 +71,7 @@ func main() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func createSocket(pixelmatrix [][][4]uint32) net.Conn {
|
func createSocket(pixelmatrix [][][4]uint32, xstart, ystart int) net.Conn {
|
||||||
// connection(s)
|
// connection(s)
|
||||||
conn, err := net.Dial("tcp", targetAddr)
|
conn, err := net.Dial("tcp", targetAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -76,7 +81,7 @@ func createSocket(pixelmatrix [][][4]uint32) net.Conn {
|
||||||
|
|
||||||
// start painting
|
// start painting
|
||||||
for s := 0; s < goProc; s++ {
|
for s := 0; s < goProc; s++ {
|
||||||
go paint(conn, pixelmatrix, startx, starty)
|
go paint(conn, pixelmatrix, xstart, ystart)
|
||||||
}
|
}
|
||||||
return conn
|
return conn
|
||||||
}
|
}
|
||||||
|
|
11
part.go
11
part.go
|
@ -4,17 +4,18 @@ import (
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getPart(pixelmatrix [][][4]uint32, partCount, partTotal, partBegin int) [][][4]uint32 {
|
func getPart(pixelmatrix [][][4]uint32, partCount, partTotal, partBegin int) ([][][4]uint32, int, int) {
|
||||||
xLength := len(pixelmatrix)
|
xLength := len(pixelmatrix)
|
||||||
if xLength < partTotal {
|
if xLength < partTotal {
|
||||||
log.Fatal("more parts then rows not possible")
|
log.Fatal("more parts then rows not possible")
|
||||||
return nil
|
return nil, 0, 0
|
||||||
}
|
}
|
||||||
partSize := (xLength / partTotal)
|
partStep := (xLength / partTotal)
|
||||||
|
start := partBegin * partStep
|
||||||
|
|
||||||
// last part should return last rows
|
// last part should return last rows
|
||||||
if partBegin + partCount == partTotal {
|
if partBegin + partCount == partTotal {
|
||||||
return pixelmatrix[ partBegin * partSize : ]
|
return pixelmatrix[start: ], start, 0
|
||||||
}
|
}
|
||||||
return pixelmatrix[ partBegin * partSize : (partBegin + partCount) * partSize]
|
return pixelmatrix[ start : (partBegin + partCount) * partStep], start, 0
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue