Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
텍스트 스타일
모양 변경
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
7년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
16 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
88 행
복사
16 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
88 행
복사
#version 450
#version 450
#define WIDTH 800
#define WIDTH 800
#define HEIGHT 600
#define HEIGHT 600
#define WORKGROUP_SIZE 32
#define WORKGROUP_SIZE 32
layout (local_size_x = WORKGROUP_SIZE, local_size_y = WORKGROUP_SIZE, local_size_z = 1) in;
layout (local_size_x = WORKGROUP_SIZE, local_size_y = WORKGROUP_SIZE, local_size_z = 1) in;
layout(binding = 0) readonly buffer buf1 {
layout(binding = 0) readonly buffer buf1 {
복사
복사됨
복사
복사됨
int data
[WIDTH]
[HEIGHT]
;
int data
[HEIGHT]
[WIDTH]
;
} previousBoard;
} previousBoard;
layout(binding = 1) buffer buf2 {
layout(binding = 1) buffer buf2 {
복사
복사됨
복사
복사됨
int data
[WIDTH]
[HEIGHT]
;
int data
[HEIGHT]
[WIDTH]
;
} nextBoard;
} nextBoard;
void main() {
void main() {
int x = int(gl_GlobalInvocationID.x);
int x = int(gl_GlobalInvocationID.x);
int y = int(gl_GlobalInvocationID.y);
int y = int(gl_GlobalInvocationID.y);
if(x >= WIDTH || y >= HEIGHT)
if(x >= WIDTH || y >= HEIGHT)
return;
return;
uint countNeighboors = 0;
uint countNeighboors = 0;
if (y > 0)
if (y > 0)
{
{
if (x > 0)
if (x > 0)
{
{
// x - 1 ; y - 1
// x - 1 ; y - 1
복사
복사됨
복사
복사됨
countNeighboors += previousBoard.data[
x
- 1][
y
- 1];
countNeighboors += previousBoard.data[
y
- 1][
x
- 1];
}
}
// x ; y - 1
// x ; y - 1
복사
복사됨
복사
복사됨
countNeighboors += previousBoard.data
[x]
[y - 1]
;
countNeighboors += previousBoard.data
[y - 1]
[x]
;
if(x < 799)
if(x < 799)
{
{
// x + 1 ; y - 1
// x + 1 ; y - 1
복사
복사됨
복사
복사됨
countNeighboors += previousBoard.data
[x + 1]
[y - 1]
;
countNeighboors += previousBoard.data
[y - 1]
[x + 1]
;
}
}
}
}
if (x > 0)
if (x > 0)
{
{
// x - 1 ; y
// x - 1 ; y
복사
복사됨
복사
복사됨
countNeighboors += previousBoard.data
[x - 1]
[y]
;
countNeighboors += previousBoard.data
[y]
[x - 1]
;
}
}
if(x < 799)
if(x < 799)
{
{
// x + 1 ; y
// x + 1 ; y
복사
복사됨
복사
복사됨
countNeighboors += previousBoard.data
[x + 1]
[y]
;
countNeighboors += previousBoard.data
[y]
[x + 1]
;
}
}
if (y < 599)
if (y < 599)
{
{
if (x > 0)
if (x > 0)
{
{
// x - 1 ; y + 1
// x - 1 ; y + 1
복사
복사됨
복사
복사됨
countNeighboors += previousBoard.data
[x - 1]
[y + 1]
;
countNeighboors += previousBoard.data
[y + 1]
[x - 1]
;
}
}
// x ; y + 1
// x ; y + 1
복사
복사됨
복사
복사됨
countNeighboors += previousBoard.data
[x]
[y + 1]
;
countNeighboors += previousBoard.data
[y + 1]
[x]
;
if(x < 799)
if(x < 799)
{
{
// x + 1 ; y + 1
// x + 1 ; y + 1
복사
복사됨
복사
복사됨
countNeighboors += previousBoard.data[
x
+ 1][
y
+ 1];
countNeighboors += previousBoard.data[
y
+ 1][
x
+ 1];
}
}
}
}
if(countNeighboors == 3)
if(countNeighboors == 3)
{
{
복사
복사됨
복사
복사됨
nextBoard.data[
x][y
] = 1;
nextBoard.data[
y][x
] = 1;
}
}
else if (countNeighboors == 2)
else if (countNeighboors == 2)
{
{
복사
복사됨
복사
복사됨
nextBoard.data[
x][y
] = previousBoard.data[
x][y
];
nextBoard.data[
y][x
] = previousBoard.data[
y][x
];
}
}
else
else
{
{
복사
복사됨
복사
복사됨
nextBoard.data[
x][y
] = 0;
nextBoard.data[
y][x
] = 0;
}
}
}
}
저장된 비교 결과
원본
파일 열기
#version 450 #define WIDTH 800 #define HEIGHT 600 #define WORKGROUP_SIZE 32 layout (local_size_x = WORKGROUP_SIZE, local_size_y = WORKGROUP_SIZE, local_size_z = 1) in; layout(binding = 0) readonly buffer buf1 { int data[WIDTH][HEIGHT]; } previousBoard; layout(binding = 1) buffer buf2 { int data[WIDTH][HEIGHT]; } nextBoard; void main() { int x = int(gl_GlobalInvocationID.x); int y = int(gl_GlobalInvocationID.y); if(x >= WIDTH || y >= HEIGHT) return; uint countNeighboors = 0; if (y > 0) { if (x > 0) { // x - 1 ; y - 1 countNeighboors += previousBoard.data[x - 1][y - 1]; } // x ; y - 1 countNeighboors += previousBoard.data[x][y - 1]; if(x < 799) { // x + 1 ; y - 1 countNeighboors += previousBoard.data[x + 1][y - 1]; } } if (x > 0) { // x - 1 ; y countNeighboors += previousBoard.data[x - 1][y]; } if(x < 799) { // x + 1 ; y countNeighboors += previousBoard.data[x + 1][y]; } if (y < 599) { if (x > 0) { // x - 1 ; y + 1 countNeighboors += previousBoard.data[x - 1][y + 1]; } // x ; y + 1 countNeighboors += previousBoard.data[x][y + 1]; if(x < 799) { // x + 1 ; y + 1 countNeighboors += previousBoard.data[x + 1][y + 1]; } } if(countNeighboors == 3) { nextBoard.data[x][y] = 1; } else if (countNeighboors == 2) { nextBoard.data[x][y] = previousBoard.data[x][y]; } else { nextBoard.data[x][y] = 0; } }
수정본
파일 열기
#version 450 #define WIDTH 800 #define HEIGHT 600 #define WORKGROUP_SIZE 32 layout (local_size_x = WORKGROUP_SIZE, local_size_y = WORKGROUP_SIZE, local_size_z = 1) in; layout(binding = 0) readonly buffer buf1 { int data[HEIGHT][WIDTH]; } previousBoard; layout(binding = 1) buffer buf2 { int data[HEIGHT][WIDTH]; } nextBoard; void main() { int x = int(gl_GlobalInvocationID.x); int y = int(gl_GlobalInvocationID.y); if(x >= WIDTH || y >= HEIGHT) return; uint countNeighboors = 0; if (y > 0) { if (x > 0) { // x - 1 ; y - 1 countNeighboors += previousBoard.data[y - 1][x - 1]; } // x ; y - 1 countNeighboors += previousBoard.data[y - 1][x]; if(x < 799) { // x + 1 ; y - 1 countNeighboors += previousBoard.data[y - 1][x + 1]; } } if (x > 0) { // x - 1 ; y countNeighboors += previousBoard.data[y][x - 1]; } if(x < 799) { // x + 1 ; y countNeighboors += previousBoard.data[y][x + 1]; } if (y < 599) { if (x > 0) { // x - 1 ; y + 1 countNeighboors += previousBoard.data[y + 1][x - 1]; } // x ; y + 1 countNeighboors += previousBoard.data[y + 1][x]; if(x < 799) { // x + 1 ; y + 1 countNeighboors += previousBoard.data[y + 1][x + 1]; } } if(countNeighboors == 3) { nextBoard.data[y][x] = 1; } else if (countNeighboors == 2) { nextBoard.data[y][x] = previousBoard.data[y][x]; } else { nextBoard.data[y][x] = 0; } }
비교하기