<p>Because OpenGL is being deprecated by Apple, use Metal instead of OpenGL for main VM window in OS X.</p>
<p>Metal only works in 64 bits mode. So, I also made the needed changes to keep using OpenGL in the 32 bits version of the OS X VM.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306'>https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>I ported the main OS X view from OpenGL into Metal.</li>
  <li>Disable restoring OpenGL context hack in ioProcessEvents when using Metal for the main window.</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-0">build.macos32x86/common/Makefile.app</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-1">build.macos32x86/common/Makefile.flags</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-2">build.macos64x64/common/Makefile.app</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-3">build.macos64x64/common/Makefile.flags</a>
    (7)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-4">build.macos64x64/common/Makefile.rules</a>
    (10)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-5">build.macos64x64/common/Makefile.vm</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-6">platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m</a>
    (14)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-7">platforms/iOS/vm/English.lproj/MainMenu-opengl.xib</a>
    (1261)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-8">platforms/iOS/vm/English.lproj/MainMenu.xib</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-9">platforms/iOS/vm/OSX/SqViewBitmapConversion.m</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-10">platforms/iOS/vm/OSX/SqViewClut.m</a>
    (5)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-11">platforms/iOS/vm/OSX/SqueakMainShaders.metal</a>
    (73)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-12">platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m</a>
    (5)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-13">platforms/iOS/vm/OSX/sqSqueakOSXMetalView.h</a>
    (93)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-14">platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m</a>
    (772)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306.patch'>https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306.patch</a></li>
  <li><a href='https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306.diff'>https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AhLyW34kaIzIr4nCXMlyoc2XT2WNczzeks5ut9C-gaJpZM4YYXFc">mute the thread</a>.<img src="https://github.com/notifications/beacon/AhLyW8dU-8jg9fyJZUBMmhG1iY1NQWWRks5ut9C-gaJpZM4YYXFc.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/OpenSmalltalk/opensmalltalk-vm","title":"OpenSmalltalk/opensmalltalk-vm","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Use Metal instead of OpenGL for the main VM Window in OS X (#306)"}],"action":{"name":"View Pull Request","url":"https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306",
"url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Use Metal instead of OpenGL for the main VM Window in OS X (#306)",
"sections": [
{
"text": "",
"activityTitle": "**Ronie Salgado**",
"activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png",
"activitySubtitle": "@ronsaldo",
"facts": [

]
},
{
"title": "Commit Summary",
"facts": [
{
"name": "f74c43a",
"value": "I ported the main OS X view from OpenGL into Metal."
},
{
"name": "534db29",
"value": "Disable restoring OpenGL context hack in ioProcessEvents when using Metal for the main window."
}
]
},
{
"title": "File Changes",
"facts": [
{
"name": "Modified",
"value": "[build.macos32x86/common/Makefile.app](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-0) (4 changes)"
},
{
"name": "Modified",
"value": "[build.macos32x86/common/Makefile.flags](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-1) (2 changes)"
},
{
"name": "Modified",
"value": "[build.macos64x64/common/Makefile.app](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-2) (8 changes)"
},
{
"name": "Modified",
"value": "[build.macos64x64/common/Makefile.flags](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-3) (7 changes)"
},
{
"name": "Modified",
"value": "[build.macos64x64/common/Makefile.rules](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-4) (10 changes)"
},
{
"name": "Modified",
"value": "[build.macos64x64/common/Makefile.vm](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-5) (1 changes)"
},
{
"name": "Modified",
"value": "[platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-6) (14 changes)"
},
{
"name": "Added",
"value": "[platforms/iOS/vm/English.lproj/MainMenu-opengl.xib](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-7) (1261 changes)"
},
{
"name": "Modified",
"value": "[platforms/iOS/vm/English.lproj/MainMenu.xib](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-8) (8 changes)"
},
{
"name": "Modified",
"value": "[platforms/iOS/vm/OSX/SqViewBitmapConversion.m](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-9) (5 changes)"
},
{
"name": "Modified",
"value": "[platforms/iOS/vm/OSX/SqViewClut.m](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-10) (5 changes)"
},
{
"name": "Added",
"value": "[platforms/iOS/vm/OSX/SqueakMainShaders.metal](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-11) (73 changes)"
},
{
"name": "Modified",
"value": "[platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-12) (5 changes)"
},
{
"name": "Added",
"value": "[platforms/iOS/vm/OSX/sqSqueakOSXMetalView.h](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-13) (93 changes)"
},
{
"name": "Added",
"value": "[platforms/iOS/vm/OSX/sqSqueakOSXMetalView.m](https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306/files#diff-14) (772 changes)"
}
]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"OpenSmalltalk/opensmalltalk-vm\",\n\"issueId\": 306,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}"
}
]
},
{
"name": "Close pull request",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"PullRequestClose\",\n\"repositoryFullName\": \"OpenSmalltalk/opensmalltalk-vm\",\n\"pullRequestId\": 306\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306.patch"
}
],
"@type": "OpenUri",
"name": "View patch"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/306.diff"
}
],
"@type": "OpenUri",
"name": "View diff"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 409039196\n}"
}
],
"themeColor": "26292E"
}
]</script>