Mercurial > hg > Members > riono > TreeVNC_ja_comment
comparison src/main/java/com/glavsoft/rfb/encoding/decoder/ZRLEDecoder.java @ 500:6609174beafe
fix subencoding
author | oshiro |
---|---|
date | Sun, 17 Feb 2019 17:55:25 +0900 |
parents | 5455c62a3775 |
children | 57ee5c26e8eb |
comparison
equal
deleted
inserted
replaced
499:5455c62a3775 | 500:6609174beafe |
---|---|
70 // 2 to 16 for raw packed palette data, 130 to 255 for Palette RLE (subencoding - 128) | 70 // 2 to 16 for raw packed palette data, 130 to 255 for Palette RLE (subencoding - 128) |
71 int paletteSize = subencoding & 127; | 71 int paletteSize = subencoding & 127; |
72 offset += readPalette(bytes, offset, renderer, paletteSize); | 72 offset += readPalette(bytes, offset, renderer, paletteSize); |
73 if (1 == subencoding) { // A solid tile consisting of a single colour | 73 if (1 == subencoding) { // A solid tile consisting of a single colour |
74 renderer.fillRect(palette[0], tileX, tileY, tileWidth, tileHeight); | 74 renderer.fillRect(palette[0], tileX, tileY, tileWidth, tileHeight); |
75 continue; | 75 } else if (isRle) { |
76 } | |
77 if (isRle) { | |
78 if (0 == paletteSize) { // subencoding == 128 (or paletteSize == 0) - Plain RLE | 76 if (0 == paletteSize) { // subencoding == 128 (or paletteSize == 0) - Plain RLE |
79 offset += decodePlainRle(bytes, offset, renderer, tileX, tileY, tileWidth, tileHeight); | 77 offset += decodePlainRle(bytes, offset, renderer, tileX, tileY, tileWidth, tileHeight); |
80 } else { | 78 } else { |
81 offset += decodePaletteRle(bytes, offset, renderer, tileX, tileY, tileWidth, tileHeight); | 79 offset += decodePaletteRle(bytes, offset, renderer, tileX, tileY, tileWidth, tileHeight); |
82 } | 80 } |
86 // System.out.println("offset:"+offset); | 84 // System.out.println("offset:"+offset); |
87 } else { | 85 } else { |
88 offset += decodePacked(bytes, offset, renderer, paletteSize, tileX, tileY, tileWidth, tileHeight); | 86 offset += decodePacked(bytes, offset, renderer, paletteSize, tileX, tileY, tileWidth, tileHeight); |
89 } | 87 } |
90 } | 88 } |
91 rfbProto.multicastPut(rect, bytes, prevoffset, offset, tileWidth, tileHeight); | 89 if (rfbProto != null) rfbProto.multicastPut(rect, bytes, prevoffset, offset, tileWidth, tileHeight); |
92 prevoffset = offset; | 90 prevoffset = offset; |
93 } | 91 } |
94 } | 92 } |
95 } | 93 } |
96 | 94 |