�g�b�v�y�[�W - �|��h�L�������g - RFB�v���g�R�� 3.7
(��)���̖|��͂ЂƂO�� RFB �v���g�R�� �o�[�W���� 3.7 �����ɂ��Ă��܂��B�o�[�W���� 3.8 �̖|��͉��L�����N��ɂ���܂��B
�\�[�V�����u�b�N�}�[�N�F
�T�C�g���֘A�����N�F
RFB �v���g�R�� 3.8
Tristan Richardson
ReadVNC Ltd
(formerly of Olivetti Research Ltd / AT&T Labs Cambridge)*
Version 3.7
12 August 2003
*James Weatherall, Andy Harter and Ken Wood also helped in the design of the RFB protocol
RFB("remote framebuffer")�̓O���t�B�J�����[�U�C���^�[�t�F�C�X�Ƀ����[�g�A�N�Z�X���s�����߂̒P���ȃv���g�R���ł��D���̃v���g�R���̓t���[���o�b�t�@���x���œ��삷�邽�߁CX11��Windows 3.1/95/NT�CMacintosh�Ȃǂ��܂ށC������E�B���h�E�V�X�e���ɓK�����܂��D
���[�U�����鑤(�܂�C�f�B�X�v���C�ƃL�[�{�[�h��}�E�X�����鑤)�̏I�[���CRFB�N���C�A���g�ƌĂт܂��D�t���[���o�b�t�@�ւ̕ύX���������鑤(�܂�C�E�B���h�E�V�X�e����A�v���P�[�V���������삵�Ă��鑤)���CRFB�T�[�o�[�ƌĂт܂��D
RFB�͐^��"�V����N���C�A���g"�ȃv���g�R���ł��DRFB�v���g�R���̐v�́C�N���C�A���g�ɂقƂ�ǐ�����ۂ��Ȃ����Ƃɏd����u���Ă��܂��D���̂��߁C�N���C�A���g�͑��ʂȃn�[�h�E�F�A��œ��삵�܂����C�N���C�A���g�����������Ƃ͔��ɃV���v���ł��D
����ɂ��̃v���g�R���́A�N���C�A���g���X�e�[�g���X�ɂ��܂��D����T�[�o�[����ؒf�����N���C�A���g����œ����T�[�o�[�ɍĐڑ������ꍇ�C���[�U�C���^�[�t�F�C�X�͑O�̏�Ԃ��ێ�����Ă��܂��D����RFB�T�[�o�[�ɑ��ĕʂ̃N���C�A���g����ڑ����邱�Ƃ��o���܂��D���p�҂͐V�����N���C�A���g����C�ŏ��̃N���C�A���g�ł̃��[�U�C���^�[�t�F�C�X�ƑS��������Ԃ����邱�ƂɂȂ�܂��D����͎�����A�v���P�[�V���������S�Ƀ��o�C�������邱�Ƃ��o����Ƃ������Ƃł��D�K�ȃl�b�g���[�N�ڑ�������Ƃ���Ȃ�ǂ�����ł��C���p�҂͎����̃A�v���P�[�V�����ɃA�N�Z�X���邱�Ƃ��ł��܂��D�����āC�قȂ�ꏊ����̃A�N�Z�X�ɑ��āC�A�v���P�[�V�����̏�Ԃ͕ێ�����Ă��܂��D����ɂ��C���p�҂��ǂ��ɂ��Ă��C�ނ炪�ǂ��m���Ă��铯���R���s���[�^������邱�Ƃ��ł��܂��D
���̃v���g�R���̕\������ �u�^����ꂽ x, y ���W�Ƀs�N�Z���f�[�^�Ƃ��Ă̒����`��`�悷��v�Ƃ����P��̕`��K���Ɋ�Â��Ă��܂��D�ꌩ����ƁC����͑����̃��[�U�[�C���^�[�t�F�C�X�v�f��`�悷��ɂ͔�����Ɏv���邩������܂���D�������C�s�N�Z���f�[�^�ɑ��đ��l�ȃG���R�[�h���@�������邱�Ƃɂ��C�Ⴆ�l�b�g���[�N�̑ш��N���C�A���g�̕`��\�́C�T�[�o�[�̏����\�͂Ƃ������C�l�X�ȗv���̃g���[�h�I�t�����肷���ŁC�傫�ȏ_���^���Ă��܂��D
����璷���`�̃V�[�P���X�́Cframebuffer update(�܂��͒P��update) �����܂��D���̍X�V�́C�ЂƂ̗L���ȃt���[���o�b�t�@����ʂ̃t���[���o�b�t�@�ւ̕ύX�Ƃ��ĕ\������Ă���C���̓_�ł̓r�f�I�̍\���Ɏ��Ă��܂��D�ʏ�A���̍X�V���Ɍ���钷���`���d�Ȃ荇�����Ƃ͂���܂��A�K�����������ł���K�v�͂���܂���D
�X�V�v���g�R���̓N���C�A���g����̗v���ɂ���Ă̂ݓ��삵�܂��D�܂�C�N���C�A���g����̖����I�ȗv���ɑ��鉞���ɂ���Ă̂݁C�T�[�o�[����N���C�A���g�ɍX�V��������Ƃ������ƂɂȂ�܂��D���̐����͂��̃v���g�R���ɓK���\�͂�^���Ă���C�N���C�A���g��l�b�g���[�N���x����Βx���قǁC�X�V�̔������͒Ⴍ�Ȃ�܂��D�T�^�I�ȃA�v���P�[�V�����ł́C�t���[���o�b�t�@��̓���G���A���ւ̕ύX�͎��X�ƘA�����Ĕ�������X��������܂��D�x���N���C�A���g��x���l�b�g���[�N�̏ꍇ�C�t���[���o�b�t�@�X�V���̂��̉ߓn�I�ȏ�Ԃ����邱�Ƃ��ł��܂��D���̌��ʁC��菭�Ȃ��l�b�g���[�N�g���t�B�b�N�C��菭�Ȃ��N���C�A���g���̕`��ɂȂ�܂��D
���̃v���g�R���̓��͑��́C�L�[�{�[�h�ƕ����{�^���t���|�C���e�B���O�f�o�C�X�Ƃ����C�W���I�ȃ��[�N�X�e�[�V�����̃��f���Ɋ�Â��Ă��܂��D���p�҂��L�[��{�^������������|�C���e�B���O�f�o�C�X�������肵���ꍇ�ɂ͏�ɁC���̓C�x���g���N���C�A���g����T�[�o�[�ɓ`�����܂��D�����̓��̓C�x���g�́C���̔�W���̓��o�͑��u�ɂ���č��������邱�Ƃ��\�ł��D�Ⴆ�C�y�����g�����菑���F���G���W���́C�L�[�{�[�h�C�x���g�����邩������܂���D
RFB�̃N���C�A���g�E�T�[�o�[�Ԃ̍ŏ��̑Θb�́C���M�����s�N�Z���f�[�^���t�H�[�}�b�g ������G���R�[�h�`�� �̃l�S�V�G�[�V�������܂݂܂��D���̃l�S�V�G�[�V�����́C�N���C�A���g�̎d�����o���邾���ȒP�ɂȂ�悤�ɐv����Ă��܂��D�Œ���́C�N���C�A���g���v������`���ŃT�[�o�[���s�N�Z���f�[�^����ɒł��Ȃ���Ȃ�Ȃ��C�Ƃ������Ƃł��D�������Ȃ���C�N���C�A���g���������̈قȂ�t�H�[�}�b�g��G���R�[�h�ɑΉ����Ă���ꍇ�C�T�[�o�[���ł��ȒP�ɒł�����̂�I�����Ă��\���܂���D
�s�N�Z�����t�H�[�}�b�g �́C�s�N�Z���l�ɂ��X�̐F�̕\����\���܂��D�ł���ʓI�ȃs�N�Z���t�H�[�}�b�g�́C24�r�b�g�܂���16�r�b�g��"�g�D���[�J���["(�s�N�Z���l�̃r�b�g���ԁE�E�̋P�x�����̂܂ܕ\��)�ƁC8�r�b�g��"�J���[�}�b�v"(�C�ӂ̃}�b�s���O���g�p���ăs�N�Z���l����RGB�l�֕ϊ�����)�ł��D
�G���R�[�h�`���́C�s�N�Z���f�[�^�̒����`���ǂ̂悤�ɑ��M����邩��\���܂��D�S�Ă̒����`�̃f�[�^�́C���̐擪�Ƀw�b�_�Ƃ��āC���̒����`�̃X�N���[����ł� X, Y ���W�C���ƍ����C�����ăs�N�Z���f�[�^�̃G���R�[�h�`���������G���R�[�h�^�C�v �������Ă��܂��D�f�[�^���͎̂w��̃G���R�[�h�`���ł��̌�ɑ����܂��D
�V�����G���R�[�h�`����lj����邱�ƂŃv���g�R�����g�����邱�Ƃ��o���܂��D�����_�Œ�`����Ă���G���R�[�h�`���́CRaw, CopyRect, RRE, CoRRE, Hextile, ������ZRLE �ł��D���ۂ̂Ƃ���C���B�͒ʏ� ZRLE�CHextile�CCopyRect �������g�p���Ă��܂��D�����͓T�^�I�ȃf�X�N�g�b�v�ɂƂ��čł����k�������`��������ł��D
�����̃G���R�[�h�`���ɉ����āC�N���C�A���g���������̃v���g�R���g�����T�|�[�g���Ă��邱�Ƃ��T�[�o�[�ɒm�点�邽�߂ɁC"�[���G���R�[�h�`��(pseudo-encoding)"��v�����邱�Ƃ��o���܂��D���̊g�����T�|�[�g���Ȃ��T�[�o�[�͂��̗v����P���ɖ�������ł��傤�D���̊g���Ǝ��̓��ӂ��T�[�o�[���瓾���Ȃ�����C�N���C�A���g�́C�T�[�o�[�����̊g�����T�|�[�g���Ă��Ȃ����̂Ɖ��肵�Ȃ���Ȃ�Ȃ��_�ɒ��ӂ��Ă��������D
�قȂ�^�C�v�̃G���R�[�h�`����[���G���R�[�h�`�����Փ˂��Ȃ����Ƃ͏d�v�ł��D���̂悤�Ȗ�������邽�߁CRFB �v���g�R���̃o�[�W�����ƃG���R�[�h�`���� RealVNC �Ђɂ���ă����e�i���X����Ă��܂��D
�e�G���R�[�h�`���̐����� 6.4 ���C�[���G���R�[�h�`���̈Ӗ��ɂ��Ă� 6.5 ���Q�Ƃ��Ă��������D
RFB�v���g�R���́C�C�ӂ̐M���ł���g�����X�|�[�g��(�o�C�g�X�g���[���ł����b�Z�[�W�x�[�X�ł�)�œ��삵�܂��D���̃v���g�R���ɂ͓�̃X�e�[�W������܂��D�ŏ��̃n���h�V�F�C�N�t�F�[�Y�ƁC����ɑ����ʏ�̃v���g�R���ɂ��Θb�ł��D
�n���h�V�F�C�N��ProtocolVersion�CSecurity�CClientInitialisation�CServerInitialisation �̊e���b�Z�[�W���琬��܂��D�N���C�A���g�ƃT�[�o�[�̗�����ProtocolVersion ���b�Z�[�W�𑗐M���邱�Ƃɒ��ӂ��Ă��������D
ServerInitialisation ���b�Z�[�W�̌�C�v���g�R���͒ʏ�̑Θb���J�n���܂��D���̒i�K�ɂȂ�ƁC�N���C�A���g�͎����̖]�ރ��b�Z�[�W�𑗐M���邱�Ƃ��\�ŁC���̌��ʂƂ��ăT�[�o�[����̃��b�Z�[�W����M���܂��D�����̃��b�Z�[�W��1�o�C�g�����b�Z�[�W�^�C�v �Ƃ���ɑ������b�Z�[�W�ŗL�̃f�[�^�������`�ɂȂ�܂��D
�ȉ��̃v���g�R�����b�Z�[�W�̐����ł́C��{�I�Ȍ^�Ƃ��� U8�CU16�CU32�CS8�CS16�CS32 ���g�p���Ă��܂��D�����͂��ꂼ��C8�r�b�g�C16�r�b�g�C32�r�b�g�̕����Ȃ������ƁC8�r�b�g�C16�r�b�g�C32�r�b�g�̕����t��������\���܂��D�����o�C�g����(�s�N�Z���l�͏���)�̓r�b�O�G���f�B�A��(�ŏ�ʃo�C�g��擪�ɒu���`��)�ł��D
PIXEL�^���s�N�Z��������̃o�C�g�� �o�C�g�̃s�N�Z���l��\���܂��D������ 8 �~ �s�N�Z��������̃o�C�g���́C�N���C�A���g�ƃT�[�o�[��ServerInisialisation���b�Z�[�W(6.1.4)�܂���SetPixelFormat���b�Z�[�W(6.2.1)�̂ǂ��炩�ō��ӂ����u�s�N�Z��������̃r�b�g���v�ɂȂ�܂��D
�n���h�V�F�C�N�́C�T�[�o�[���N���C�A���g��ProtocolVersion���b�Z�[�W�𑗐M���邱�ƂŊJ�n����܂��D����ɂ��N���C�A���g�́C�T�[�o�[���T�|�[�g����RFB�v���g�R���̍ł������o�[�W�����ԍ���m��܂��D���̌�N���C�A���g�́C���ۂɎg�p���ׂ��v���g�R���̃o�[�W�����ԍ�(�T�[�o�[���������o�[�W�����ԍ��ƈقȂ��Ă��Ă��\���܂���)���܂ށC�����悤�ȃ��b�Z�[�W��Ԃ��܂��D�N���C�A���g�̓T�[�o�[�ɂ����ꂽ�o�[�W�������������o�[�W������v�����Ă͂Ȃ�܂���D���̃��J�j�Y���ɂ��A�T�[�o�[�ƃN���C�A���g�͂�����x�̉��ʌ݊��������Ă�Ƃ������Ƃ��Ӗ����Ă��܂��D
�����_�Ō��J����Ă���v���g�R���o�[�W�����ԍ��́C3.3 �� 3.7 �����ł� (�ȑO�A�������̃N���C�A���g�ɂ��o�[�W���� 3.5 ������ĕ���܂������C�S�ẴT�[�o�[�ɂ���Ă���� 3.3 �ł���Ɖ��߂����ׂ��ł�)�D�ʏ�C�V�����G���R�[�h�`����[���G���R�[�h�`����lj����邱�Ƃ̓o�[�W�����ԍ��̕ύX��K�v�Ƃ��܂���D�T�[�o�[�́C�����ł��Ȃ��G���R�[�h�`����P�ɖ�������Ηǂ�����ł��D
ProtocolVersion���b�Z�[�W��12�o�C�g�ō\������CASCII������"RFB xxx.yyy\n"(xxx �� yyy �́C���ꂼ��[���l�߂��ꂽ���W���[�o�[�W�����ԍ��ƃ}�C�i�[�o�[�W�����ԍ�) �Ƃ����`���ł��D
�o�C�g�� | �l |
---|---|
12 | "RFB 003.003\n" (16�i 52 46 42 20 30 30 33 2e 30 30 33 0a) |
�܂���
�o�C�g�� | �l |
---|---|
12 | "RFB 003.007\n" (16�i 52 46 42 20 30 30 33 2e 30 30 37 0a) |
�̉��ꂩ�ł��D
�v���g�R���o�[�W���������肵����C�T�[�o�[�ƃN���C�A���g�͂��̐ڑ��Ŏg�p�����Z�L�����e�B�^�C�v�ɂ��č��ӂ��Ȃ���Ȃ�܂���D
Version 3.7 �T�[�o�[�̓T�[�|�[�g���Ă���Z�L�����e�B�^�C�v�̈ꗗ��Ԃ��܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | �Z�L�����e�B�^�C�v�̐� | |
�Z�L�����e�B�^�C�v�̐� | U8 array | �Z�L�����e�B�^�C�v |
�N���C�A���g�́C�T�[�o�[���������ꗗ�̒��Ɏ������T�|�[�g����Z�L�����e�B�^�C�v���ЂƂł����݂���C���݂̐ڑ��Ŏg�p����Z�L�����e�B�^�C�v������1�o�C�g�𑗂�Ԃ��܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | �Z�L�����e�B�^�C�v |
�Z�L�����e�B�^�C�v�̐� ���[���̏ꍇ�C���炩�̗��R(�Ⴆ�C�v�����ꂽ�v���g�R���o�[�W�������T�[�o�[���T�|�[�g���Ă��Ȃ���)�Őڑ��͎��s���Ă��܂��D���̏ꍇ�C���R��������镶����(������ASCII�������琬��)�������܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
4 | U32 | ���R�̒��� | |
���R�̒��� | U8 array | ���R |
���R �̕�����𑗐M������C�T�[�o�[�͂��̐ڑ����I�����܂��D
Version 3.3 �T�[�o�[���Z�L�����e�B�^�C�v�����肵�C1���[�h�𑗐M���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
4 | U32 | �Z�L�����e�B�^�C�v |
�Z�L�����e�B�^�C�v �ɂ� 0�C1�C2 �̉��ꂩ��������Ă��܂��D0 �͐ڑ������s�������Ƃ��Ӗ����C��ɏq�ׂ��悤�ȗ��R��������镶�������܂��D
�Z�L�����e�B�^�C�v �����肷��ƁC����ɑΉ�����f�[�^�d�l�͈ȉ��̂悤�ɂȂ�܂��D
�Enone (1) - �F�͕s�v�ŁC�v���g�R���̃f�[�^�͈Í������ꂸ�ɑ��M����܂��D�v���g�R����ClientInitialisation ���b�Z�[�W�ւƑ����܂��D
�EVNC authentication (2) - VNC�F���g�p����C�v���g�R���̃f�[�^�͈Í������ꂸ�ɑ��M����܂��D�T�[�o�[��16�o�C�g�̃����_���ȃ`�������W���l�𑗐M���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
16 | U8 | �`�������W���l |
�N���C�A���g�̓`�������W���l���g�p���ăp�X���[�h��DES�ňÍ������C���ʂ�16�o�C�g�𑗐M���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
16 | U8 | ���� |
�T�[�o�[�͔F�������������ǂ�����1���[�h�ŕԂ��܂��D���������ꍇ�C�v���g�R����ClientInitialisation �ւƑ����܂��D���s�����ꍇ�C�T�[�o�[�͐ڑ����I�����܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
4 | U8 | �����F | |
0 | ���� | ||
1 | ���s | ||
2 | ��������(���g�p) |
�N���C�A���g�ƃT�[�o�[���݂��ɍ��ӂ����Z�L�����e�B�^�C�v�ŒʐM���鏀�����o����ƁC�N���C�A���g�͏��������b�Z�[�W�𑗐M���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | ���L�t���O |
���L�t���O ����[��(true)�̏ꍇ�C�T�[�o�[�͑��̃N���C�A���g�ƃf�X�N�g�b�v�����L���悤�Ƃ��܂��D�[���̏ꍇ�C�T�[�o�[�͑��̃N���C�A���g��ؒf���邱�ƂŁC���݂̃N���C�A���g�ɔr���I�ȃA�N�Z�X��^���܂��D
ClientInitialisation ���b�Z�[�W���������C�T�[�o�[��ServerInitialisation ���b�Z�[�W�𑗐M���܂��D���̃��b�Z�[�W�́C�N���C�A���g�ɁC�T�[�o�[�̃t���[���o�b�t�@�̕��ƍ����C�s�N�Z���t�H�[�}�b�g�C�f�X�N�g�b�v�Ɋ֘A�t����ꂽ���O��`���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
2 | U16 | �t���[���o�b�t�@�̕� | |
2 | U16 | �t���[���o�b�t�@�̍��� | |
16 | PIXCEL_FORMAT | �T�[�o�[�̃s�N�Z���t�H�[�}�b�g | |
4 | U32 | ���O�̒��� | |
���O�̒��� | U8 array | ���O |
PIXEL_FORMAT�͈ȉ��̂悤�ȓ��e�ł��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | �s�N�Z��������̃r�b�g�� | |
1 | U8 | �P�x | |
1 | U8 | �r�b�O�G���f�B�A���t���O | |
1 | U8 | �g�D���[�J���[�t���O | |
2 | U16 | �Ԃ̍ő�P�x | |
2 | U16 | �̍ő�P�x | |
2 | U16 | �̍ő�P�x | |
1 | U8 | �Ԃ̃V�t�g�l | |
1 | U8 | �̃V�t�g�l | |
1 | U8 | �̃V�t�g�l | |
3 | �p�f�B���O |
�T�[�o�[�̃s�N�Z���t�H�[�}�b�g �́C���̃T�[�o�[�̎��R�ȃs�N�Z���t�H�[�}�b�g�ł��D�N���C�A���g�� SetPixelFormat ���b�Z�[�W(6.2.1)���g�p���ĈقȂ�t�H�[�}�b�g��v�����Ȃ�����C���̃s�N�Z���t�H�[�}�b�g���g�p����܂��D
�s�N�Z��������̃r�b�g�� �́C�e�s�N�Z�����Ɏg�p�����r�b�g���ł��D���̒l�́C�s�N�Z���l�̂����L���ȃr�b�g����\���P�x �ȏ�łȂ���Ȃ�܂���D�����_���s�N�Z��������̃r�b�g�� �� 8�C16�C32 �̉��ꂩ�łȂ���Ȃ�܂���D8 �r�b�g�����͂܂��T�|�[�g����Ă��܂���D�r�b�O�G���f�B�A���t���O ����[��(true)�̏ꍇ�C�����o�C�g�̃s�N�Z���̓r�b�O�G���f�B�A���ł���Ɖ��߂���܂��D���R�Ȃ���C�s�N�Z��������̃r�b�g�� ��8�r�b�g�̏ꍇ�ɂ͈Ӗ�������܂���D
�g�D���[�J���[�t���O ����[��(true)�̏ꍇ�C����6���ڂɂ��C�s�N�Z���l����ԁE�E�̊e�P�x�𒊏o������@�����肳��܂��D�Ԃ̍ő�P�x �͐ԐF�̍ő�l(= 2n - 1�D������ n �͐ԂɎg����r�b�g��)�ł��D���̒l�͏�Ƀr�b�O�G���f�B�A���ł��邱�Ƃɒ��ӂ��Ă��������D�Ԃ̃V�t�g�l �́C�s�N�Z���l�̒�����Ԃ̒l�邽�߂ɕK�v�ȁC���ʃr�b�g�����ւ̃V�t�g�ł��D�̍ő�P�x�C�̃V�t�g�l�C�̍ő�P�x�C�̃V�t�g�l �́C���ꂼ��Ɛɑ��铯���Ӗ��������܂��D�Ⴆ�C����s�N�Z���l����Ԃ̒l(0 �` �Ԃ̍ő�P�x )�邽�߂ɂ͎��̂悤�ɑ��삵�܂��D
�E�r�b�O�G���f�B�A���t���O �ɏ]���ăs�N�Z���l�����ւ��܂��D(�Ⴆ���r�b�O�G���f�B�A���t���O ���[��(false)�ŁC�z�X�g�̃o�C�g�I�[�_�[���r�b�O�G���f�B�A���Ȃ����ւ��܂�)
�E�Ԃ̃V�t�g�l �����C�E�����ɃV�t�g���܂��D
�E�z�X�g�̃o�C�g�I�[�_�[�ɍ��킹���Ԃ̍ő�P�x �Ƙ_���ς��Ƃ�܂��D
�g�D���[�J���[�t���O ���[��(false)�̏ꍇ�C�T�[�o�[�͐ԁE�E�̋P�x���琬��s�N�Z���l�ł͂Ȃ��C�J���[�}�b�v�ւ̃C���f�b�N�X���g�p���܂��D�J���[�}�b�v�̃G���g���[�́C�T�[�o�[��SetColourMapEntries ���b�Z�[�W(6.3.2)���g�p���Đݒ肵�܂��D
FrameBufferUpdate ���b�Z�[�W���Ŏg�p�����s�N�Z���l�̃t�H�[�}�b�g��ݒ肵�܂��D�N���C�A���g��SetPixelFormat���b�Z�[�W�𑗂�Ȃ������ꍇ�C�T�[�o�[��ServerInitialisation���b�Z�[�W(6.1.4)�Ŏw�肵���C�T�[�o�[���g�̎��R�ȃt�H�[�}�b�g���g�p���܂��D
�g�D���[�J���[�t���O ���[��(false)�̏ꍇ�C"�J���[�}�b�v"���g�p����邱�Ƃ������܂��D�T�[�o�[�́CSetColourMapEntries ���b�Z�[�W(6.3.2)���g�p���ĔC�ӂ̃J���[�}�b�v��ݒ肷�邱�Ƃ��o���܂��D����ȑO�ɃT�[�o�[�ɂ���ăG���g���[���ݒ肳��Ă����Ƃ��Ă��C�N���C�A���g�����̃��b�Z�[�W�𑗂�������ɃJ���[�}�b�v�͋�ɂȂ�܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 0 | ���b�Z�[�W�^�C�v |
3 | �p�f�B���O | ||
16 | PIXEL_FORMAT | �s�N�Z���t�H�[�}�b�g |
6.1.4�ŏq�ׂ��̂Ɠ��l�CPIXEL_FORMAT�͈ȉ��̂悤�ȓ��e�ł��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | �s�N�Z��������̃r�b�g�� | |
1 | U8 | �P�x | |
1 | U8 | �r�b�O�G���f�B�A���t���O | |
1 | U8 | �g�D���[�J���[�t���O | |
2 | U16 | �Ԃ̍ő�P�x | |
2 | U16 | �̍ő�P�x | |
2 | U16 | �̍ő�P�x | |
1 | U8 | �Ԃ̃V�t�g�l | |
1 | U8 | �̃V�t�g�l | |
1 | U8 | �̃V�t�g�l | |
3 | �p�f�B���O |
���̃��b�Z�[�W�͌��݂ł͑��݂��܂���D���b�Z�[�W�^�C�v 1�Ƃ��Ďg�p����Ă��܂����D
�T�[�o�[�����M����s�N�Z���f�[�^�Ɏg�p�����G���R�[�h�`����ݒ肵�܂��D���̃��b�Z�[�W���̃G���R�[�h�^�C�v�̕��я��́C�D�揇�ʂ̃q���g�ɂȂ�܂�(�擪�̃G���R�[�h�`�����ł��D�揇�ʂ�����)�D�T�[�o�[�͂��̃q���g���g�p���Ă��C�g�p���Ȃ��Ă��\���܂���D���̃��b�Z�[�W���g�p���ăG���R�[�h�`���������I�Ɏw�肳��Ȃ������ꍇ�ł��C�ʏ��Raw �G���R�[�h���g�p���č\���܂���D
�����̃G���R�[�h�`���ɉ����C�v���g�R���ɑ������̊g�����T�|�[�g���Ă��邱�Ƃ��T�[�o�[�ɐ錾���邱�ƂŁC"�[���G���R�[�h�`��"��v�����邱�Ƃ��o���܂��D���̊g�����T�|�[�g���Ȃ��T�[�o�[�͂��̗v����P���ɖ�������ł��傤�D�N���C�A���g�́C���̊g���Ǝ��̓��ӂ��T�[�o�[���瓾���Ȃ�����C�T�[�o�[�����̊g�����T�|�[�g���Ă��Ȃ����̂Ɖ��肵�Ȃ���Ȃ�Ȃ��_�ɒ��ӂ��Ă��������D
�e�G���R�[�h�`���̐����� 6.4 ���C�����_�Ŏg���Ă���[���G���R�[�h�`���̐����� 6.5 ���Q�Ƃ��Ă��������D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 1 | ���b�Z�[�W�^�C�v |
1 | �p�f�B���O | ||
2 | U16 | �G���R�[�h�`���̐� |
�����āC�G���R�[�h�`���̐� �����ȉ��̓��e���J��Ԃ���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
4 | U32 | �G���R�[�h�^�C�v | |
0 | Row �G���R�[�h | ||
1 | CopyRect �G���R�[�h | ||
2 | RRE �G���R�[�h | ||
4 | CoRRE �G���R�[�h | ||
5 | Hextile �G���R�[�h | ||
16 | ZRLE �G���R�[�h | ||
0xffffff11 | Cursor �[���G���R�[�h | ||
0xffffff21 | DesktopSize �[���G���R�[�h | ||
���̑��̓o�^�ς݃G���R�[�h�`�� | |||
6,7,8 | zlib, tight, zlibhex | ||
0xffffff00 �` 0xffffff10 0xffffff12 �` 0xffffff20 0xffffff22 �` 0xffffffff |
tight �̃I�v�V���� |
�N���C�A���g�� x���W�Cy���W�C���C�����Ŏw�肳���t���[���o�b�t�@�̗̈�ɒ��ڂ��Ă��邱�Ƃ��T�[�o�[�ɒʒm���܂��D�ʏ�C�T�[�o�[�͂��̃��b�Z�[�W�ɑ���FramebufferUpdate �ʼn������܂��D�������Ȃ���C�P�Ƃ�FramebufferUpdateRequest�ɑ��ĕ�����FramebufferUpdate ��Ԃ����Ƃ�������Ă��邱�Ƃɒ��ӂ��Ă��������D
�T�[�o�[�́C�N���C�A���g�����ڂ��Ă���t���[���o�b�t�@�̃R�s�[��S�ĕێ����Ă���Ɖ��肵�܂��D����́C�ʏ�T�[�o�[�̓N���C�A���g�ɑ��đ����݂̂̍X�V�𑗂�Ηǂ��Ƃ������Ƃ��Ӗ����܂��D
�������Ȃ���C���炩�̗��R�ŃN���C�A���g�������̕K�v�Ƃ��Ă���̈�̓��e�������Ă���ꍇ�CFramebufferUpdateRequest ������ �Ƀ[��(false)���Z�b�g���đ���܂��D���̗v���ɂ��T�[�o�[�͂��̗̈�̊��S�ȓ��e���\�Ȍ��葁�����M���܂��D���̗̈��CopyRect �G���R�[�h���g�p���čX�V����邱�Ƃ͂Ȃ��ł��傤�D
�N���C�A���g�������̒��ڂ��Ă���̈�̓��e�������Ă��Ȃ��ꍇ�CFramebufferUpdateRequest ������ �ɔ�[��(true)���Z�b�g���đ���܂��D���̗̈�ɕύX������C�T�[�o�[��FramebufferUpdate �𑗐M���܂��DFramebufferUpdateRequest ��FramebufferUpdate �Ƃ̊Ԋu�͕s��ł��邱�Ƃɒ��ӂ��Ă��������D
�������x�̑����N���C�A���g�̏ꍇ�C�l�b�g���[�N�̑ш��Q��Ȃ��悤�ɁC�����w�肵��FramebufferUpdateRequest �𑗐M���銄�����������Ǝv����������܂���D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 3 | ���b�Z�[�W�^�C�v |
1 | U8 | ���� | |
2 | U16 | x ���W | |
2 | U16 | y ���W | |
2 | U16 | �� | |
2 | U16 | ���� |
�L�[�������ꂽ�C�܂��͗����ꂽ���Ƃ������܂��D�����t���O �́A�L�[�������ꂽ�ꍇ�ɔ�[��(true)�C�����ꂽ�ꍇ�Ƀ[��(false)�ɂȂ�܂��D�L�[ ��X Window System �Œ�`����Ă��� "keysym" ���g���Ďw�肳��܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 4 | ���b�Z�[�W�^�C�v |
1 | U8 | �����t���O | |
2 | �p�f�B���O | ||
4 | U32 | �L�[ |
�قƂ�ǂ̒ʏ�L�[�ɑΉ����� "keysym" �́A����ɑΉ�����ASCII�l�Ɠ����l�ł��D���S�ȏڍׂ́CO'Reilly & Associates ����o�ł���Ă��� Xlib Reference Manual ���CX Window System �� <X11/keysymdef.h> ���Q�Ƃ��Ă��������D���̑��̈�ʓI�ȃL�[�̈ꕔ�͈ȉ��̒ʂ�ł��D
|
|
keysym �̉��߂͕��G�ł��D�������݉^�p�����������邽�߂ɁC�ȉ��̃K�C�h���C���ɏ]���ׂ��ł��D
�E"�V�t�g���"(�܂�C�ǂ��炩�� Shift keysym ��������Ă��邩�ǂ���)�́Ckeysym �����߂���ۂ̃q���g�Ƃ��Ă̂ݎg�p����ׂ��ł��D�Ⴆ�CUS �L�[�{�[�h�� '#' �̕�������͂��鎞�ɂ̓V�t�g�L�[��������܂����CUK �L�[�{�[�h�ł͉�����܂���DUS �L�[�{�[�h�����T�[�o�[���CUK �L�[�{�[�h�̃N���C�A���g���� '#' �̕��������ꍇ�C�V�t�g�L�[�͉�����Ă��Ȃ���ԂƂȂ�܂��D���̏ꍇ�T�[�o�[�́C(�Ⴆ�� '3' �ł͂Ȃ�) '#' �̕������擾���邽�߂ɁC���[�J���V�X�e����œ����I�ɃV�t�g�L�[��������Ă���"�ӂ������"�K�v������܂��D
�Ekeysym �̑啶���E�������̈Ⴂ�͏d�v�ł��D����́C�������ƌ��Ȃ��ꕔ�� X Window System �Ƃ͈قȂ�܂��D�Ⴆ�C�V�t�g�L�[�̉�����Ă��Ȃ��啶��'A' �� keysym ��������T�[�o�[�́C�����'A'�ł���Ɖ��߂���ׂ��ł��D���̏ꍇ�C�����I�ɃV�t�g�L�[��������Ă���"�ӂ������"�K�v�����邩������܂���D
�E�\�Ȃ�C�T�[�o�[�� CapsLock �� NumLock �̂悤�� "lock" keysym ������ׂ��ł��D�ς��ɁC���ꂪ�啶�������������ɂ��C���̕����Ɋ�Â��� keysym �ɖ|��ׂ��ł��D
�EShift �Ƃ͈قȂ�CControl �� Alt �̏�Ԃ́C���� keysym �̈Ӗ���ύX������̂Ƃ��Ĉ�����ׂ��ł��Dctrl + a �̂悤��ASCII���䕶���ɂ́C�Ή����� keysym �����݂��Ȃ����Ƃɒ��ӂ��Ă��������D���̏ꍇ�̓r���[�A�ɂ���āCControl �L�[�̉����C������ 'a' �̉����Ƃ��đ��M�����ׂ��ł��D
�EControl �� Alt �������� keysym �����邽�߂Ɏg����N���C�A���g��ł́C���� keysym �����������߂����悤�ɁC�]����"�����[�X"�C�x���g�𑗂�K�v�����邩������܂���D�Ⴆ�h�C�c��L�[�{�[�h�ł́Cctrl-alt-q �͕��� '@' �����܂��D�N���C�A���g�� '@' �����������߂����悤�ɁCControl �� Alt �ɑ���"����"�����[�X�C�x���g�𑗐M����K�v������܂�( ctrl-alt-@ �̓T�[�o�[��ł͑S���قȂ�Ӗ������ł��傤)�D
�EX Window System �ɂ́u����^�u�v�̔ėp�I�ȕW���͂���܂���D����V�X�e���ł� shift + tab �� keysym "ISO_Left_Tab"�����C�ʂ̃V�X�e���ł͂��̓����L�[���삪�Ǝ��� keysym "BackTab" �����܂��D�܂��ʂ̃V�X�e���ł͂����"Tab"�����C�A�v���P�[�V������ Shift �̏�Ԃ��炻���O���^�u�ł͂Ȃ�����^�u�ł���Ɖ��߂��܂��DRFB �v���g�R���ł͌�҂̃A�v���[�`���D�܂�܂��D�r���[�A�� ISO_Left_Tab �ł͂Ȃ��Cshift + Tab ������ׂ��ł��D�������Ȃ�������̃r���[�A�Ƃ̉��ʌ݊������ێ����邽�߂ɁC�T�[�o�[�� ISO_Left_Tab �� shift + Tab ���Ӗ�������̂ƔF������ׂ��ł��D
�|�C���^�̈ړ��C�܂��̓|�C���^�̃{�^���������ꂽ�E�����ꂽ���Ƃ������܂��D�|�C���^�̌��݈ʒu��(x���W�Cy���W )�ŕ\����C�{�^�� 1 �` 8 �̏�Ԃ͂��ꂼ���{�^���}�X�N �� 0 �` 7 �̊e�r�b�g�ɑΉ����C0 �������ꂽ��ԁC1 �������ꂽ��ԂƂ��ĕ\����܂��D
��ʓI�ȃ}�E�X�ł́C�{�^�� 1�C2�C3 ���}�E�X�̍��{�^���C�E�{�^���C���{�^���ɑΉ����܂��D�z�C�[���}�E�X�ł́C����ւ̃z�C�[���X�N���[���̊e�X�e�b�v���{�^��4�̉����E�J���ŕ\����C�����ւ̃z�C�[���X�N���[���̊e�X�e�b�v���{�^��5�̉����E�J���ŕ\����܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 5 | ���b�Z�[�W�^�C�v |
1 | U8 | �{�^���}�X�N | |
2 | U16 | x ���W | |
2 | U16 | y ���W |
�N���C�A���g������o�b�t�@�ɐV����ASCII����������������Ƃ������܂��D�s�̏I�[�͒P��̃��C���t�B�[�h(ASCII�l 10)�ŕ\����܂��D�L�����b�W���^�[��(ASCII�l 13)�͕K�v����܂���D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 6 | ���b�Z�[�W�^�C�v |
3 | �p�f�B���O | ||
4 | U32 | ���� | |
���� | U8 array | ������ |
�t���[���o�b�t�@�X�V�́C�N���C�A���g���t���[���o�b�t�@�ɒu���ׂ��C�s�N�Z���f�[�^�ɂ���A�̒����`���琬��܂��D���̃��b�Z�[�W�̓N���C�A���g�����FramebufferUpdateRequest �ɑ��鉞���Ƃ��đ��M����܂��DFramebufferUpdateRequest ��FramebufferUpdate �Ƃ̊Ԋu�͕s��ł��邱�Ƃɒ��ӂ��Ă��������D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 0 | ���b�Z�[�W�^�C�v |
1 | �p�f�B���O | ||
2 | U16 | �����`�̐� |
���̌�������`�̐� �����C�s�N�Z���f�[�^�ɂ�钷���`�̏�����܂��D�e�����`�͈ȉ��̓��e���琬��܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
2 | U16 | x ���W | |
2 | U16 | y ���W | |
2 | U16 | �� | |
2 | U16 | ���� | |
4 | U32 | �G���R�[�h�^�C�v | |
0 | Row �G���R�[�h | ||
1 | CopyRect �G���R�[�h | ||
2 | RRE �G���R�[�h | ||
4 | CoRRE �G���R�[�h | ||
5 | Hextile �G���R�[�h | ||
16 | ZRLE �G���R�[�h | ||
0xffffff11 | Cursor �[���G���R�[�h | ||
0xffffff21 | DesktopSize �[���G���R�[�h | ||
���̑��̓o�^�ς݃G���R�[�h�`�� |
|||
6,7,8 | zlib, tight, zlibhex | ||
0xffffff00 �` 0xffffff10 0xffffff12 �` 0xffffff20 0xffffff22 �` 0xffffffff |
tight �̃I�v�V���� |
���̌�Ɏw��̃G���R�[�h�`���ɏ]�����s�N�Z���f�[�^�������܂��D�e�G���R�[�h�̃t�H�[�}�b�g�ɂ��Ă� 6.4 ���C�[���G���R�[�h�̈Ӗ��ɂ��Ă� 6.5 ���Q�Ƃ��Ă��������D
�s�N�Z���t�H�[�}�b�g��"�J���[�}�b�v"���g�p����ꍇ�C���̃��b�Z�[�W�̓N���C�A���g�ɑ��āC�w��̃s�N�Z���l���w���RGB�l�Ƀ}�b�v�����ׂ��ł��邱�Ƃ�`���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 1 | ���b�Z�[�W�^�C�v |
1 | �p�f�B���O | ||
2 | U16 | �ŏ��̐F | |
2 | U16 | �F�̐� |
���̌���F�̐� �����ȉ��̓��e���J��Ԃ���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
2 | U16 | �� | |
2 | U16 | �� | |
2 | U16 | �� |
�N���C�A���g���x���@�\�������Ă���ꍇ�ɁC�x����炵�܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 2 | ���b�Z�[�W�^�C�v |
�T�[�o�[������o�b�t�@�ɐV����ASCII����������������Ƃ������܂��D�s�̏I�[�͒P��̃��C���t�B�[�h(ASCII�l 10)�ŕ\����܂��D�L�����b�W���^�[��(ASCII�l 13)�͕K�v����܂���D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | 3 | ���b�Z�[�W�^�C�v |
3 | �p�f�B���O | ||
4 | U32 | ���� | |
���� | U8 array | ������ |
�ł��ȒP�ȃG���R�[�h�^�C�v���C���� Raw �s�N�Z���f�[�^�ł��D�f�[�^���� �~ ���� �̃s�N�Z���l���琬��܂�(�� ������ �͒����`�̕��ƍ����ł�)�D�l�͍�����E�ւ̏��̊e�s�N�Z����\���܂��D�S�Ă�RFB�N���C�A���g�� Raw �G���R�[�h�`���ɑΉ����Ă��Ȃ���Ȃ�܂���D�܂��C�N���C�A���g���瑼�̃G���R�[�h�`����v������Ȃ�����C�T�[�o�[��Raw�G���R�[�h�`�����������ׂ��ł��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�� �~ ���� �~ �s�N�Z��������̃o�C�g�� | PIXEL array | �s�N�Z�� |
CopyRect (copy rectangle)�G���R�[�h�͒P�����C�N���C�A���g�����g�̃t���[���o�b�t�@���̕ʂ̏ꏊ�Ɋ��ɓ����s�N�Z���f�[�^�������Ă���ꍇ�Ɍ����̗ǂ��G���R�[�h�`���ł��D���̃G���R�[�h�ő�����f�[�^�͒P���� X�CY ���W���琬��C�N���C�A���g���s�N�Z���f�[�^�̒����`���R�s�[���邱�Ƃ��o����t���[���o�b�t�@���̈ʒu�������܂��D����͗l�X�ȏ�ʂŗ��p�ł��܂��D�ł�������₷���̂́C���[�U�[���X�N���[�����ŃE�B���h�E���ړ������ꍇ��C�E�B���h�E�̓��e���X�N���[�������ꍇ�ł��D������͕��������p���@�Ƃ��ẮC�e�L�X�g���̌J��Ԃ��p�^�[���̕`����œK������ꍇ������܂��D�D�ꂽ�T�[�o�[�͂���p�^�[������x�������M���C�t���[���o�b�t�@���̂��̃p�^�[���̈ʒu��m�点�邱�ƂŁC���̌�ɑ����Č���铯���p�^�[���ɑ���CopyRect �G���R�[�h���g�p���đ��邱�Ƃ��o����ł��傤�D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
2 | U16 | �R�s�[�� x ���W | |
2 | U16 | �R�s�[�� y ���W |
RRE ��rise-and-run-length encoding ��\���Ă���C���̖��O���Î����Ă��悤�ɁC�{���I�� Run-Length �G���R�[�h�̓��ł̗ގ����@�ł��D�N���C�A���g�ɓ͂��� RRE �ŃG���R�[�h���ꂽ�����`�́C�O���t�B�b�N�G���W���̍ł��P���Ȃ��̂ɂ���đ����ɂ������I�ɕ`�悷�邱�Ƃ��o���܂��DRRE �͕��G�ȃf�X�N�g�b�v�ɂ͓K���Ă��܂��C�������̏ł͗L�p�ł��D
RRE �̊�ɂȂ��Ă���v�z�́C�s�N�Z���f�[�^�̒����`����菭���������`�̗̈�(���ꂼ��̗̈�͒P��̒l�̃s�N�Z�����琬��C�����̌��������̒����`���`������)�֕�������C�Ƃ������Ƃł��D�^����ꂽ�����`�����̂悤�Ȏq�����`�ɁC�قڍœK�ɕ�������v�Z�͔�r�I�ȒP�ł��D
���̃G���R�[�h�͔w�i�̃s�N�Z���l Vb(�T�^�I�ɂ͂��̒����`�̒��ōł��L���������߂�s�N�Z���l)�ƃJ�E���g N�C������ N �̎q�����`�������܂��D���ꂼ��̎q�����`��<v�Cx�Cy�Cw�Ch>�̑g���琬��Cv (��Vb)���s�N�Z���l�C(x�Cy)���e�����`�̍���[����̑����W�C(w�Ch)���q�����`�̕��ƍ�����\���܂��D�N���C�A���g�͔w�i�̃s�N�Z���l�Őe�����`��h��Ԃ�����C���ꂼ��̎q�����`�ɑΉ����钷���`��h��Ԃ��Ă������ƂŁC���̒����`�̗̈��`�悷�邱�Ƃ��o���܂��D
�f�[�^�͈ȉ��̃w�b�_����n�܂�܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
4 | U32 | �q�����`�̐� | |
�s�N�Z��������̃o�C�g�� | PIXEL | �w�i�̃s�N�Z���l |
���̌���q�����`�̐� �����C�ȉ��̎q�����`�̎��̂������܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�s�N�Z��������̃o�C�g�� | PIXEL | �q�����`�̃s�N�Z���l | |
2 | U16 | x ���W | |
2 | U16 | y ���W | |
2 | U16 | �� | |
2 | U16 | ���� |
���ӁFCoRRE �G���R�[�h�ɂ͂قƂ�Ǘ��_������܂���BHextile �� CoRRE �Ɠ����l�����Ɋ�Â��C���D�ꂽ�G���R�[�h�`���ł��D
CoRRE(Compact RRE)�� RRE �̈���ŁC�����`�̃T�C�Y���ő�ł� 255 �~ 255 �s�N�Z�����Ȃ����Ƃ�ۏ��Ă��܂��D�������傫���̒����`�𑗐M�������ꍇ�C�P���ɕ����̂�菬���� RFB �����`�ɕ������đ��M���܂��D���ꂼ��̏����������`�ł́C���̐��@��\�����߂�1�o�C�g�������g�p���邱�Ƃ��o���܂��D�T�^�I�ȃf�X�N�g�b�v�ɂ����āC���̕��@�� RRE �����������k���������܂��D���ۂɂ́C����ɐ������ꂽ�傫���̒����`�̏ꍇ�ɍŗǂ̈��k���������Ă���C���s�̎����ł͍ő� 48 �~ 48 �̃T�C�Y���g�p����Ă��܂��D����́C���k�̌����ɂ��������`(�T�^�I�ɂ̓C���[�W�����܂ޏꍇ)�� Raw �ő��M����C���k�̗ǂ����������`�� CoRRE �ő��M����邽�߂ł��D�����`�̍ő�T�C�Y����������Ώ������قǁC���̎�@�ɂ����闱�x�ׂ͍����Ȃ�܂��DRRE �ł́C���̒����`�S�̂� RRE �� Raw �ő��M���Ȃ���Ȃ�܂���D�������Ȃ���C�e RFB �����`�ɂ����̃I�[�o�[�w�b�h�����邽�߁C�����`�̍ő�T�C�Y���������������邱��(�]���� RFB �����`�̐��������邱��)�́C���k���̒ቺ�������܂��D
�f�[�^�͈ȉ��̃w�b�_����n�܂�܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
4 | U32 | �q�����`�̐� | |
�s�N�Z��������̃o�C�g�� | PIXEL | �w�i�̃s�N�Z���l |
���̌���q�����`�̐� �����C�ȉ��̎q�����`�̎��̂������܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�s�N�Z��������̃o�C�g�� | PIXEL | �q�����`�̃s�N�Z���l | |
1 | U8 | x ���W | |
1 | U8 | y ���W | |
1 | U8 | �� | |
1 | U8 | ���� |
Hextile �� CoRRE �̍l�����Ɋ�Â�����ł��D�����`�� 16 �~ 16 �̃T�C�Y���^�C�� �ɕ�������܂��D�q�����`�̐��@�͊e4�s�b�g�C�v16�r�b�g�ŕ\����܂��DCoRRE �Ƃ͈قȂ�C�e�^�C���� RFB �����`�ł͂���܂���D���̒����`���^�C���ɕ�������ۂɂ͂��炩���ߌ��߂�ꂽ���@������܂��D����͊e�^�C���̈ʒu�ƃT�C�Y���I�Ɏw�肷��K�v���Ȃ��Ƃ������Ƃ��Ӗ����܂��D�^�C���̃G���R�[�h���ꂽ���e�́C�P���ɂ��炩���ߌ��߂�ꂽ�����Ŏ��X�Ƒ����܂��D���̏����͍��ォ��n�܂�C������E�C�ォ�牺�̏��ɂȂ�܂��B�����`�S�̂̕��� 16 �̔{���ł͂Ȃ��ꍇ�C�e�s�̍Ō�̃^�C���̕��͂��̕������������Ȃ�܂��D�����悤�ɒ����`�S�̂̍����� 16 �̔{���ł͂Ȃ��ꍇ�C�Ō�̍s�Ɋ܂܂��S�Ẵ^�C���̍������������Ȃ�܂��D
�e�^�C���� Raw �G���R�[�h �܂��� RRE �Ɋ�Â�����ŃG���R�[�h����܂��D�O�q�̒ʂ�C�e�^�C���͔w�i�̃s�N�Z���l�������܂��D�������C�w�i�����O�̃^�C���Ɠ����ł���Ζ����I�Ɏw�肷��K�v�͂���܂���D�S�Ẵ^�C���������s�N�Z���l�����ꍇ�C�^�C���S�̂̑O�i�̃s�N�Z���l�Ƃ��Ĉ�x�����w�肷��Ηǂ����ƂɂȂ�܂��D�w�i�Ɠ��l�C�O�i�̃s�N�Z���l�����w��ɂ��Ă����C�O�̃^�C������l�������z�����Ƃ��o���܂��D
�f�[�^�͏��ԂɃG���R�[�h���ꂽ�e�^�C�����琬��܂��D�e�^�C���́C�ȉ��̂悤�ȃr�b�g����\��������T�u�G���R�[�h �^�C�v�o�C�g�Ŏn�܂�܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | �T�u�G���R�[�h�̃}�X�N | |
1 | Raw | ||
2 | �w�i�F�w�� | ||
4 | �O�i�F�w�� | ||
8 | �q�����`�̐� | ||
16 | �q�����`�̐F�̗L�� |
Raw �r�b�g���Z�b�g�����ꍇ�C���̃r�b�g�͈Ӗ����������C�� �~ ���� �̃s�N�Z���l�������܂�(�� ������ �͂��̃^�C���̕��ƍ����ł�)�DRaw �r�b�g���Z�b�g����Ă��Ȃ��ꍇ�C�}�X�N���̑��̃r�b�g�̈Ӗ��͈ȉ��̒ʂ�ł��D
�w�i�F�w�� - �Z�b�g����Ă���ꍇ�C���̃^�C���̔w�i�F����肷��s�N�Z���l�������܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�s�N�Z��������̃o�C�g�� | PIXEL | �w�i�̃s�N�Z���l |
�����`���̍ŏ���raw�łȂ��^�C���ł́C���̃r�b�g��K���w�肵�Ȃ���Ȃ�܂���D
�O�i�F�w�� - �Z�b�g����Ă���ꍇ�C�O�i�F����肷��s�N�Z���l�������܂��D���̃s�N�Z���l�͂��̃^�C�����̑S�Ă̎q�����`�ɑ��Ďg�p����܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�s�N�Z��������̃o�C�g�� | PIXEL | �O�i�̃s�N�Z���l |
���̃r�b�g���Z�b�g����Ă���ꍇ�C�q�����`�̐F�̗L���������r�b�g�̓[���łȂ���Ȃ�܂���D
�q�����`�̐� - �Z�b�g����Ă���ꍇ�C�q�����`�̐��������ȉ��̂悤��1�o�C�g�������܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | �q�����`�̐� |
�Z�b�g����Ă��Ȃ��ꍇ�C�q�����`�͂���܂���(�܂�C�^�C���S�̂̔w�i���P�F�Ƃ������Ƃł�)�D
�q�����`�̐F�̗L�� - �Z�b�g����Ă���ꍇ�C���ꂼ��̎q�����`�̑O�ɁC���̎q�����`�̐F�������s�N�Z���l���u����܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�s�N�Z��������̃o�C�g�� | PIXEL | �q�����`�̃s�N�Z���l | |
1 | U8 | x ���W�Cy ���W | |
1 | U8 | ���ƍ��� |
�Z�b�g����Ă��Ȃ��ꍇ�C�S�Ă̎q�����`�͓����F�ƂȂ�C�O�i�F�w��̃r�b�g���Z�b�g����Ă��Ȃ���Ό�̃^�C���Ɠ����F�ɂȂ�܂��D�q�����`�͈ȉ��̂悤�ɂȂ�܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | xy���W | |
1 | U8 | ���ƍ��� |
���ꂼ��̎q�����`�̍��W�ƃT�C�Y�́Cxy���W�C���ƍ��� �� 2 �o�C�g�Ŏw�肳��܂��Dxy���W �̏��4�r�b�g�� X���W�C����4�r�b�g�� Y���W��\���܂��D���ƍ��� �̏��4�r�b�g��(�� - 1)�C����4�r�b�g��(���� - 1)��\���܂��D
ZRLE �� Zlib1 Run-Length Encoding ��\���Ă���Czlib ���k�C�^�C�����O�C�p���b�g���Crun-length �G���R�[�h�̑g�����ł��D���M�����f�[�^��4�o�C�g�̃t�B�[���h�Ŏn�܂�C���̌�� zlib ���k���ꂽ���e�������܂��D���� RFB �v���g�R���̐ڑ���ł́C�P��� zlib "stream" �I�u�W�F�N�g���g�p����܂��D����������ZRLE �ł̒����`�́C�����ɏ��Ԓʂ�ɃG���R�[�h�ƃf�R�[�h���s���Ȃ���Ȃ�܂���D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
4 | U32 | ���� | |
���� | U8 array | zlib �f�[�^ |
���k����Ȃ��ꍇ�� zlib �f�[�^ �́C������E�C�ォ�牺�̏��� 64 �~ 64 �s�N�Z���̃^�C���Q�Ƃ����CHextile �Ɏ����`���ŕ\����܂��D�����`�̕��� 64 �̔{���ł͂Ȃ��ꍇ�C�e�s�̍Ō�̃^�C���̕��͂��̕������������Ȃ�܂��D�����悤�ɒ����`�S�̂̍����� 64 �̔{���ł͂Ȃ��ꍇ�C�Ō�̍s�Ɋ܂܂��S�Ẵ^�C���̍������������Ȃ�܂��D
ZRLE �͐V�����^ CPIXEL(compressed pixel) ���g�p���܂��D����́C�g�D���[�J���[�t���O ����[���C�s�N�Z��������̃r�b�g�� �� 32�C�P�x ��24�ȉ��C�����Ă��̑S�Ẵr�b�g�����3�o�C�g�܂��͉���3�o�C�g�̂ǂ��炩�ŐԁE�E�̋P�x���\������ꍇ�������C���ӂ��ꂽ�s�N�Z���`���̂��߂� PIXEL �Ɠ����ł��D���̏ꍇ CPIXEL ��3�o�C�g�݂̂ƂȂ�C����3�o�C�g�܂��͏��3�o�C�g���܂݂܂��DCPixel������̃o�C�g�� �́CCPIXEL���̃o�C�g���ł��D
�e�^�C�����T�u�G���R�[�h �^�C�v�o�C�g�Ŏn�܂�܂��D���̃o�C�g�̏��1�r�b�g�� run-length �G���R�[�h�̏ꍇ�ɃZ�b�g����C�����łȂ��ꍇ�̓N���A����܂��D����7�r�b�g�̓p���b�g�̃T�C�Y�������C0 �̓p���b�g���Ȃ����ƁC1 �͂��̃^�C�����P�F�ł��邱�ƁC2 �` 127 �̓p���b�g�̃T�C�Y��\���܂��D�T�u�G���R�[�h ����蓾��l�͈ȉ��̒ʂ�ł��D
0 - Raw �s�N�Z���f�[�^�D�� �~ ���� �̃s�N�Z���l�������܂�(�� ������ �͂��̃^�C���̕��ƍ����ł�)�D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�� �~ ���� �~ CPixel������̃o�C�g�� | CPIXEL array | �s�N�Z�� |
1 - �P�F�̃^�C���D�s�N�Z���l�������܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
Cpixcel������̃o�C�g�� | CPIXEL | �s�N�Z���l |
2 �` 16 - �p�b�N���ꂽ�p���b�g�^�C�v�D�p���b�g�T�C�Y (���T�u�G���R�[�h) ���̃s�N�Z���l���琬��p���b�g�������܂��D���̌�Ƀp�b�N���ꂽ�s�N�Z���������܂��D�e�s�N�Z���̓p���b�g�̃C���f�b�N�X(0 ���ŏ��̃G���g���[���Ӗ����܂�)�������r�b�g�t�B�[���h�Ƃ��ĕ\������܂��D�p���b�g�T�C�Y �� 2 �̏ꍇ�� 1 �r�b�g�̃t�B�[���h���g�p����C�p���b�g�T�C�Y ��3�܂���4�̏ꍇ��2�r�b�g�̃t�B�[���h���g�p����C�p���b�g�T�C�Y ��5�`16�̏ꍇ��4�r�b�g�̃t�B�[���h���g�p����܂��D�����̃r�b�g�t�B�[���h�̓o�C�g���Ƀp�b�N����C�ŏ�ʂ̃r�b�g���ō��[�̃s�N�Z����\���܂�(�܂�C�r�b�O�G���f�B�A���ł�)�D�s�N�Z������8�C4�C2�̔{���ł͂Ȃ��^�C���̏ꍇ�C�e�s �����m�Ƀo�C�g���ɂȂ�悤�ɁC�A���C�������g���邽�߂̃p�f�B���O�r�b�g���g�p����܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�p���b�g�T�C�Y �~ Cpixcel������̃o�C�g�� | CPIXEL array | �p���b�g | |
m | U8 array | �p�b�N���ꂽ�s�N�Z�� |
������ m �́C�p�b�N���ꂽ�s�N�Z����\������o�C�g���ŁC�p���b�g�T�C�Y ��2�̏ꍇ�ɂ� floor ((�� + 7) / 8 ) �~ ���� �ƂȂ�C�p���b�g�T�C�Y �� 3 �܂��� 4 �̏ꍇ�� floor ((�� + 3) / 4 ) �~ �����C�p���b�g�T�C�Y �� 5 �` 16 �̏ꍇ�� floor ((�� + 1) / 2) �~ ���� �ƂȂ�܂��D
17 �` 127 - ���g�p(RLE�p���b�g�ɑ��闘�_�͂���܂���)
128 - �P���� RLE�D�^�C���̏I���܂ŌJ��Ԃ���� run ���琬��܂��Drun �͂���s�̏I�[���玟�̍s�̎n�܂�܂Ōp�����邱�Ƃ�������Ă��܂��D�e run �́C�P�Ƃ̃s�N�Z���l�ƁC���� run �̒����ŕ\����܂��D������1�o�C�g�ȏ�ŕ\����܂��D�����͂��̒������\���S�Ẵo�C�g����� 1 �������̂Ƃ��Čv�Z����܂��D255 �ȊO�̑S�Ẵo�C�g�l�͍ŏI�o�C�g�ł��邱�Ƃ������܂��D�]���āC�Ⴆ�� 1 ��[0]�C255 ��[254]�C256��[255,0]�C257��[255,1]�C510��[255,254]�C511��[255,255,0]�Ȃǂƕ\����܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
Cpixcel������̃o�C�g�� | CPIXEL | �s�N�Z���l | |
floor ((run�̒��� - 1) / 255) | U8 array | 255 | |
1 | U8 | (run �̒��� - 1) % 255 |
129 - ���g�p
130 �` 255 - �p���b�gRLE�D�p���b�g�T�C�Y = (�T�u�G���R�[�h - 128) ���̃s�N�Z���l���琬��p���b�g�������܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�p���b�g�T�C�Y �~ Cpixcel������̃o�C�g�� | CPIXEL array | �p���b�g |
���̌�C�P���� RLE�Ɠ��l�C�^�C���̏I���܂� run ���J��Ԃ���܂��D���� 1 �� run �́C�P���Ƀp���b�g�̃C���f�b�N�X��\���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | �p���b�g�̃C���f�b�N�X |
1 �o�C�g��蒷�� run �́C�ŏ�ʃr�b�g���Z�b�g���ꂽ�p���b�g�̃C���f�b�N�X��\���C���̌�� run �̒����������܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
1 | U8 | �p���b�g�̃C���f�b�N�X + 128 | |
floor((run �̒��� - 1) / 255 | U8 array | 255 | |
1 | U8 | (run �̒��� - 1) % 255 |
1�Q�l http://www.gzip.org/zlib/
�J�[�\�� �[���G���R�[�h��v������N���C�A���g�́C���[�J���Ń}�E�X�J�[�\����`��ł���\�͂����邱�Ƃ�錾���Ă��邱�ƂɂȂ�܂��D����͒ᑬ�ڑ��ɂ����āC���Ȃ�̑̊����x�̌���������炵�܂��D�T�[�o�[�́C�J�[�\�� �[���G���R�[�h��p�����[�������`���X�V�̈ꕔ�Ƃ��đ��M���邱�ƂŁC�J�[�\���̌`���ݒ肵�܂��D���̋[�������`�� x ���W�� y ���W�̓J�[�\���̃z�b�g�X�|�b�g��\���C�� ������ �̓J�[�\���̕��ƍ������s�N�Z���P�ʂŕ\���܂��D�� �~���� ���̃s�N�Z���l���琬��f�[�^�̌�ɁC�r�b�g�}�X�N�������܂��D���̃r�b�g�}�X�N�́C������E�C�ォ�牺�ւ̑��������琬��C�e�������� floor ((�� + 7)/8)�̃o�C�g���܂Ŗ��߂��܂��D�e�o�C�g���ɂ�����e�r�b�g�́C�Ή�����J�[�\�����̃s�N�Z�����L���ł��邱�Ƃ�\���C�ŏ��1�r�b�g�͍ō��[�̃s�N�Z����\���܂��D
�o�C�g�� | �^ | [�l] | ���� |
---|---|---|---|
�� �~ ���� �~ �s�N�Z��������̃o�C�g�� | PIXEL array | �J�[�\���̃s�N�Z�� | |
floor((�� + 7) / 8) * ���� | U8 array | �r�b�g�}�X�N |
�f�X�N�g�b�v�T�C�Y�[���G���R�[�h��v������N���C�A���g�́C�t���[���o�b�t�@�̕��⍂���̕ύX�ɑΉ����Ă��邱�Ƃ�錾���Ă��邱�ƂɂȂ�܂��D�T�[�o�[�͍X�V�̈ꕔ�Ƃ����f�X�N�g�b�v�T�C�Y �G���R�[�h��p�����[�������`�𑗐M���邱�ƂŁC�f�X�N�g�b�v�̃T�C�Y��ύX���܂��D�[�������`��x ���W ��y ���W �͖�������C�� ������ ���t���[���o�b�t�@�̐V�������ƍ�����\���܂��D���̋[�������`�Ɋ֘A���邱��ȏ�̃f�[�^�͂���܂���D
�g�b�v�y�[�W - �|��h�L�������g - RFB�v���g�R�� 3.7