early-access version 3872
This commit is contained in:
		@@ -1,7 +1,7 @@
 | 
			
		||||
yuzu emulator early access
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
This is the source code for early-access 3870.
 | 
			
		||||
This is the source code for early-access 3872.
 | 
			
		||||
 | 
			
		||||
## Legal Notice
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,8 @@
 | 
			
		||||
package org.yuzu.yuzu_emu.adapters
 | 
			
		||||
 | 
			
		||||
import android.content.Intent
 | 
			
		||||
import android.graphics.drawable.BitmapDrawable
 | 
			
		||||
import android.graphics.Bitmap
 | 
			
		||||
import android.graphics.drawable.LayerDrawable
 | 
			
		||||
import android.net.Uri
 | 
			
		||||
import android.text.TextUtils
 | 
			
		||||
import android.view.LayoutInflater
 | 
			
		||||
@@ -15,7 +16,10 @@ import android.widget.Toast
 | 
			
		||||
import androidx.appcompat.app.AppCompatActivity
 | 
			
		||||
import androidx.core.content.pm.ShortcutInfoCompat
 | 
			
		||||
import androidx.core.content.pm.ShortcutManagerCompat
 | 
			
		||||
import androidx.core.content.res.ResourcesCompat
 | 
			
		||||
import androidx.core.graphics.drawable.IconCompat
 | 
			
		||||
import androidx.core.graphics.drawable.toBitmap
 | 
			
		||||
import androidx.core.graphics.drawable.toDrawable
 | 
			
		||||
import androidx.documentfile.provider.DocumentFile
 | 
			
		||||
import androidx.lifecycle.ViewModelProvider
 | 
			
		||||
import androidx.navigation.findNavController
 | 
			
		||||
@@ -87,11 +91,24 @@ class GameAdapter(private val activity: AppCompatActivity) :
 | 
			
		||||
            action = Intent.ACTION_VIEW
 | 
			
		||||
            data = Uri.parse(holder.game.path)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val layerDrawable = ResourcesCompat.getDrawable(
 | 
			
		||||
            YuzuApplication.appContext.resources,
 | 
			
		||||
            R.drawable.shortcut,
 | 
			
		||||
            null
 | 
			
		||||
        ) as LayerDrawable
 | 
			
		||||
        layerDrawable.setDrawableByLayerId(
 | 
			
		||||
            R.id.shortcut_foreground,
 | 
			
		||||
            GameIconUtils.getGameIcon(holder.game).toDrawable(YuzuApplication.appContext.resources)
 | 
			
		||||
        )
 | 
			
		||||
        val inset = YuzuApplication.appContext.resources
 | 
			
		||||
            .getDimensionPixelSize(R.dimen.icon_inset)
 | 
			
		||||
        layerDrawable.setLayerInset(1, inset, inset, inset, inset)
 | 
			
		||||
        val shortcut = ShortcutInfoCompat.Builder(YuzuApplication.appContext, holder.game.path)
 | 
			
		||||
            .setShortLabel(holder.game.title)
 | 
			
		||||
            .setIcon(
 | 
			
		||||
                IconCompat.createWithBitmap(
 | 
			
		||||
                    (holder.binding.imageGameScreen.drawable as BitmapDrawable).bitmap
 | 
			
		||||
                IconCompat.createWithAdaptiveBitmap(
 | 
			
		||||
                    layerDrawable.toBitmap(config = Bitmap.Config.ARGB_8888)
 | 
			
		||||
                )
 | 
			
		||||
            )
 | 
			
		||||
            .setIntent(openIntent)
 | 
			
		||||
 
 | 
			
		||||
@@ -6,9 +6,11 @@ package org.yuzu.yuzu_emu.utils
 | 
			
		||||
import android.graphics.Bitmap
 | 
			
		||||
import android.graphics.BitmapFactory
 | 
			
		||||
import android.widget.ImageView
 | 
			
		||||
import androidx.core.graphics.drawable.toBitmap
 | 
			
		||||
import androidx.core.graphics.drawable.toDrawable
 | 
			
		||||
import coil.ImageLoader
 | 
			
		||||
import coil.decode.DataSource
 | 
			
		||||
import coil.executeBlocking
 | 
			
		||||
import coil.fetch.DrawableResult
 | 
			
		||||
import coil.fetch.FetchResult
 | 
			
		||||
import coil.fetch.Fetcher
 | 
			
		||||
@@ -74,4 +76,13 @@ object GameIconUtils {
 | 
			
		||||
            .build()
 | 
			
		||||
        imageLoader.enqueue(request)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun getGameIcon(game: Game): Bitmap {
 | 
			
		||||
        val request = ImageRequest.Builder(YuzuApplication.appContext)
 | 
			
		||||
            .data(game)
 | 
			
		||||
            .error(R.drawable.default_icon)
 | 
			
		||||
            .build()
 | 
			
		||||
        return imageLoader.executeBlocking(request)
 | 
			
		||||
            .drawable!!.toBitmap(config = Bitmap.Config.ARGB_8888)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -262,9 +262,6 @@ public:
 | 
			
		||||
    Core::SystemResultStatus InitializeEmulation(const std::string& filepath) {
 | 
			
		||||
        std::scoped_lock lock(m_mutex);
 | 
			
		||||
 | 
			
		||||
        // Loads the configuration.
 | 
			
		||||
        Config{};
 | 
			
		||||
 | 
			
		||||
        // Create the render window.
 | 
			
		||||
        m_window = std::make_unique<EmuWindow_Android>(&m_input_subsystem, m_native_window,
 | 
			
		||||
                                                       m_vulkan_library);
 | 
			
		||||
@@ -330,12 +327,13 @@ public:
 | 
			
		||||
            m_system.ShutdownMainProcess();
 | 
			
		||||
            m_detached_tasks.WaitForAllTasks();
 | 
			
		||||
            m_load_result = Core::SystemResultStatus::ErrorNotInitialized;
 | 
			
		||||
            m_window.reset();
 | 
			
		||||
            OnEmulationStopped(Core::SystemResultStatus::Success);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Tear down the render window.
 | 
			
		||||
        m_window.reset();
 | 
			
		||||
 | 
			
		||||
        OnEmulationStopped(m_load_result);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void PauseEmulation() {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								src/android/app/src/main/res/drawable/shortcut.xml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								src/android/app/src/main/res/drawable/shortcut.xml
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 | 
			
		||||
 | 
			
		||||
    <item>
 | 
			
		||||
        <color android:color="@android:color/white" />
 | 
			
		||||
    </item>
 | 
			
		||||
    <item android:id="@+id/shortcut_foreground">
 | 
			
		||||
        <bitmap android:src="@drawable/default_icon" />
 | 
			
		||||
    </item>
 | 
			
		||||
 | 
			
		||||
</layer-list>
 | 
			
		||||
@@ -27,7 +27,7 @@
 | 
			
		||||
            app:nullable="true" />
 | 
			
		||||
        <argument
 | 
			
		||||
            android:name="menuTag"
 | 
			
		||||
            app:argType="string" />
 | 
			
		||||
            app:argType="org.yuzu.yuzu_emu.features.settings.model.Settings$MenuTag" />
 | 
			
		||||
    </activity>
 | 
			
		||||
 | 
			
		||||
    <action
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@
 | 
			
		||||
    <dimen name="spacing_refresh_end">72dp</dimen>
 | 
			
		||||
    <dimen name="menu_width">256dp</dimen>
 | 
			
		||||
    <dimen name="card_width">165dp</dimen>
 | 
			
		||||
    <dimen name="icon_inset">24dp</dimen>
 | 
			
		||||
 | 
			
		||||
    <dimen name="dialog_margin">20dp</dimen>
 | 
			
		||||
    <dimen name="elevated_app_bar">3dp</dimen>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user