WINE 코드 보신분 있나요? 궁금한게 있습니다.

sugarlessgirl의 이미지

WINE 이 내부적으로 managed 모드일때와 unmanaged 모드일때,
nonclient 영역을 어떻게 처리하는지를 (managed 모드이면 WM에 위임, 아니면 wine이 윈도우 에뮬레이션하여 직접 그림) 알고 싶어서 코드를 봤습니다.

/dlls/winex11/window.c 에서 managed 모드 처리를 하는데 이건 WM에 힌트를 주는 정도의 코드 같습니다.
한가지 알아낸 거라고는
/dlls/user/nonclient.c 에서 non clinet 영역을 그리는 코드가 있는데,

 GetClipBox( hdc, &rectClip );
 rectWindow = wndPtr->rectWindow;
 rect.top = rect.left = 0;
 rect.right  = rectWindow.right - rectWindow.left;
 rect.bottom = rectWindow.bottom - rectWindow.top;
 NC_DrawFrame(hdc, &rect, active, dwStyle, dwExStyle );
 if( IntersectRect( &rfuzz, &r, &rectClip ) )   // rfuzz 는 의미없음
            NC_DrawCaption(hdc, &r, hwnd, dwStyle, dwExStyle, active);

rectClip 과 r 이 겹치는지 확인해서 캡션을 그리는데,
managed 모드일때는 rectClip 값이 전부 {0, 0, 0, 0} 이 나와서, 겹치는 부분이 안생기고,
unmanaged 모드일때는 rectClip 값이 윈도우 크기가 나오는 거 같습니다.

GetClipBox 함수에 뭔가 있겠다 싶어 호출과정을 따라 쭈욱 코드를 보는데.. 좌절입니다.. -_-;

지푸라기라도 잠는 심정으로 여기다 질문을 올리오니,
혹시 밥먹고 할일없어서 WINE 코드라도 분석해 보셨거나 Guru 의 경지에 오르셔서 코드를 한번만 봐도 이해가 되시는 분은
불쌍한 저좀 도와주시면 감사하겠습니다. 머리가 깨질것 같은데 도저히 눈을 뗄수가 없습니다... 아 밥도 먹어야 되는데.. -_-;;

wine-devel 메일링 리스트에 나온 메일주소로 메일을 보내봤는데.. -_-; 참 메일링 리스트란게 생소해서 어케되는건지 모르겠더군요-_-;
archive 들어가서 보니까 제가 보낸 메일은 아직도 안보이는데.. (답장도 없습니다) -_-;
혹시 wine hacking 에 관련해서 질/답 할수 있는 곳을 아시면 알려주심 감사하겠습니다.

그럼 좋은 주말되세요

_의 이미지

이 bbs에서 tag는 빈칸이 아닌 콤마로 구분해주는 것이더라구요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.