Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macOS: GUI freezes when resized too wide #609

Open
2 tasks done
rgov opened this issue Feb 5, 2024 · 1 comment
Open
2 tasks done

macOS: GUI freezes when resized too wide #609

rgov opened this issue Feb 5, 2024 · 1 comment
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@rgov
Copy link

rgov commented Feb 5, 2024

Environment

  • OS Version: macOS Sonoma 14.3

  • Source or binary build? Source - gz-gui8 8.0.0, gz-gui9 125a5ea (both via Homebrew formula)

  • If this is a GUI or sensor rendering bug, describe your GPU and rendering system.

    • Rendering plugin: ogre2
      • GUI rendering error.
    • Generally, mention all circumstances that might affect rendering capabilities:
      • running on real hardware
    • Rendering system info:
Graphics/Displays:

    Apple M1 Max:

      Chipset Model: Apple M1 Max
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 24
      Vendor: Apple (0x106b)
      Metal Support: Metal 3
      Displays:
        Color LCD:
          Display Type: Built-in Liquid Retina XDR Display
          Resolution: 3024 x 1964 Retina
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: Yes
          Connection Type: Internal
- [x] Please, attach the ogre.log or ogre2.log file from  `~/.gz/rendering`
21:58:19: Creating resource group General
21:58:19: Creating resource group Internal
21:58:19: Creating resource group Autodetect
21:58:19: SceneManagerFactory for type 'DefaultSceneManager' registered.
21:58:19: Registering ResourceManager for type Material
21:58:19: Registering ResourceManager for type Mesh
21:58:19: Registering ResourceManager for type Mesh2
21:58:19: Registering ResourceManager for type OldSkeleton
21:58:19: MovableObjectFactory for type 'ParticleSystem' registered.
21:58:19: ArchiveFactory for archive type FileSystem registered.
21:58:19: ArchiveFactory for archive type Zip registered.
21:58:19: ArchiveFactory for archive type EmbeddedZip registered.
21:58:19: DDS codec registering
21:58:19: FreeImage version: 3.18.0
21:58:19: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
21:58:19: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,psb,cut,xbm,xpm,gif,hdr,g3,sgi,rgb,rgba,bw,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti,x3f,webp,jxr,wdp,hdp
21:58:19: ETC codec registering
21:58:19: OITD codec registering
21:58:19: Registering ResourceManager for type HighLevelGpuProgram
21:58:19: MovableObjectFactory for type 'Decal' registered.
21:58:19: MovableObjectFactory for type 'InternalCubemapProbe' registered.
21:58:19: MovableObjectFactory for type 'Entity' registered.
21:58:19: MovableObjectFactory for type 'Item' registered.
21:58:19: MovableObjectFactory for type 'Light' registered.
21:58:19: MovableObjectFactory for type 'Rectangle2Dv2' registered.
21:58:19: MovableObjectFactory for type 'BillboardSet' registered.
21:58:19: MovableObjectFactory for type 'ManualObject2' registered.
21:58:19: MovableObjectFactory for type 'BillboardChain' registered.
21:58:19: MovableObjectFactory for type 'RibbonTrail' registered.
21:58:19: MovableObjectFactory for type 'WireAabb' registered.
21:58:19: *-*-* OGRE Initialising
21:58:19: *-*-* Version 2.3.1 (Daedalus)
21:58:19: OverlayElementFactory for type Panel registered.
21:58:19: OverlayElementFactory for type BorderPanel registered.
21:58:19: OverlayElementFactory for type TextArea registered.
21:58:19: Registering ResourceManager for type Font
21:58:19: Loading library /opt/homebrew/opt/ogre2.3/lib/OGRE-2.3/OGRE/RenderSystem_GL3Plus.dylib
21:58:19: Installing plugin: GL 3+ RenderSystem
21:58:19: OpenGL 3+ Rendering Subsystem created.
21:58:19: Plugin successfully installed
21:58:19: Loading library /opt/homebrew/opt/ogre2.3/lib/OGRE-2.3/OGRE/Plugin_ParticleFX.dylib
21:58:19: Installing plugin: ParticleFX
21:58:19: Particle Emitter Type 'Point' registered
21:58:19: Particle Emitter Type 'Box' registered
21:58:19: Particle Emitter Type 'Ellipsoid' registered
21:58:19: Particle Emitter Type 'Cylinder' registered
21:58:19: Particle Emitter Type 'Ring' registered
21:58:19: Particle Emitter Type 'HollowEllipsoid' registered
21:58:19: Particle Affector Type 'LinearForce' registered
21:58:19: Particle Affector Type 'ColourFader' registered
21:58:19: Particle Affector Type 'ColourFader2' registered
21:58:19: Particle Affector Type 'ColourImage' registered
21:58:19: Particle Affector Type 'ColourInterpolator' registered
21:58:19: Particle Affector Type 'Scaler' registered
21:58:19: Particle Affector Type 'Rotator' registered
21:58:19: Particle Affector Type 'DirectionRandomiser' registered
21:58:19: Particle Affector Type 'DeflectorPlane' registered
21:58:19: Plugin successfully installed
21:58:19: Loading library /opt/homebrew/opt/ogre2.3/lib/OGRE-2.3/OGRE/RenderSystem_Metal.dylib
21:58:19: Installing plugin: Metal RenderSystem
21:58:19: Metal: Devices Detection Starts
21:58:19: Metal: "Apple M1 Max"
21:58:19: Metal: Devices Detection Ends
21:58:19: Plugin successfully installed
21:58:19: CPU Identifier & Features
21:58:19: -------------------------
21:58:19:  *   CPU ID: ARM64E
21:58:19:  *   Logical cores: 10
21:58:19:  *     NEON: yes
21:58:19: -------------------------
21:58:19: Metal: Devices Detection Starts
21:58:19: Metal: "Apple M1 Max"
21:58:19: Metal: Devices Detection Ends
21:58:19: Metal: Requested "(default)", selected "Apple M1 Max (system default)"
21:58:19: Supports: OSX_GPUFamily1_v1
21:58:19: Registering ResourceManager for type GpuProgram
21:58:19: DefaultWorkQueue('Root') initialising on thread main.
21:58:19: Particle Renderer Type 'billboard' registered
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/2.0/scripts/materials/Common' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/2.0/scripts/materials/Common/GLSL' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/2.0/scripts/materials/Terra' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/2.0/scripts/materials/Terra/GLSL' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/2.0/scripts/materials/Common/Metal' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/2.0/scripts/materials/Terra/Metal' of type 'FileSystem' to resource group 'General'
21:58:19: HLMS Library path '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Hlms/Gz' has no piece files. Are you sure you provided the right path with read access?
21:58:19: HLMS Library path '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Hlms/Gz' has no piece files. Are you sure you provided the right path with read access?
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/materials/programs' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/materials/programs/GLSL' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/materials/programs/Metal' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/materials/scripts' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/materials/textures' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Compute/Tools' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Compute/Tools/Any' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Compute/Tools/GLSL' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Compute/Tools/HLSL' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Compute/Tools/Metal' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/VCT' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/VCT/ImageVoxelizer' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/VCT/Visualizer' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Hlms/Common/Any' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Hlms/Common/GLSL' of type 'FileSystem' to resource group 'General'
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/ogre2/media/Hlms/Pbs/Any' of type 'FileSystem' to resource group 'General'
21:58:19: Parsing scripts for resource group Autodetect
21:58:19: Finished parsing scripts for resource group Autodetect
21:58:19: Creating resources for group Autodetect
21:58:19: All done
21:58:19: Parsing scripts for resource group General
21:58:19: Parsing script Quad.program
21:58:19: Shader Ogre/Compositor/Quad_vs_Metal compiled successfully.
21:58:19: Shader Ogre/Compositor/QuadCameraDir_vs_Metal compiled successfully.
21:58:19: Shader Ogre/Compositor/QuadCameraDirNoUV_vs_Metal compiled successfully.
21:58:19: Parsing script picker.program
21:58:19: Shader plaincolor_vs_Metal compiled successfully.
21:58:19: Shader plaincolor_fs_Metal compiled successfully.
21:58:19: Parsing script EsmGaussianBlurLogFilter.material
21:58:19: Shader ESM/GaussianLogFilterH_ps_Metal compiled successfully.
21:58:19: Shader ESM/GaussianLogFilterV_ps_Metal compiled successfully.
21:58:19: Parsing script DPSM.material
21:58:19: Shader Ogre/DPSM/CubeToDpsm_ps_Metal compiled successfully.
21:58:19: Shader Ogre/DPSM/CubeToDpsm_Colour_ps_Metal compiled successfully.
21:58:19: Parsing script DepthUtils.material
21:58:19: Shader Ogre/Depth/DownscaleMax_ps_Metal compiled successfully.
21:58:19: Parsing script Copyback.material
21:58:19: Shader Ogre/Copy/4xFP32_ps_Metal compiled successfully.
21:58:19: Shader Ogre/Copy/4xFP32_2DArray_ps_Metal compiled successfully.
21:58:19: Shader Ogre/Copy/1xFP32_ps_Metal compiled successfully.
21:58:19: Shader Ogre/Resolve/1xFP32_Subsample0_ps_Metal compiled successfully.
21:58:19: Parsing script GpuNormalMapper.material
21:58:19: Shader Terra/GpuNormalMapper_ps_Metal compiled successfully.
21:58:19: Parsing script selection_buffer.material
21:58:19: Shader selection_buffer_vs_Metal compiled successfully.
21:58:19: Shader selection_buffer_fs_Metal compiled successfully.
21:58:19: Parsing script gpu_rays.material
21:58:19: Shader GpuRaysScan1stVS_Metal compiled successfully.
21:58:19: Shader GpuRaysScan1stFS_Metal compiled successfully.
21:58:19: Shader Ogre/Compositor/High/Quad_vs_Metal compiled successfully.
21:58:19: Shader GpuRaysScan2ndFS_Metal compiled successfully.
21:58:19: Shader laser_retro_vs_Metal compiled successfully.
21:58:19: Shader laser_retro_fs_Metal compiled successfully.
21:58:19: Parsing script thermal.material
21:58:19: Shader ThermalCameraVS_Metal compiled successfully.
21:58:19: Shader ThermalCameraFS_Metal compiled successfully.
21:58:19: Shader heat_source_vs_Metal compiled successfully.
21:58:19: Shader heat_source_fs_Metal compiled successfully.
21:58:19: Shader HeatSignatureVS_Metal compiled successfully.
21:58:19: Shader HeatSignatureFS_Metal compiled successfully.
21:58:19: Parsing script picker.material
21:58:19: Parsing script skybox.material
21:58:19: Shader SkyBox_vs_Metal compiled successfully.
21:58:19: Shader SkyBox_fs_Metal compiled successfully.
21:58:19: Parsing script gaussian_noise.material
21:58:19: Shader GaussianNoiseVS_Metal compiled successfully.
21:58:19: Shader GaussianNoiseFS_Metal compiled successfully.
21:58:19: Shader GaussianNoiseDepthFS_Metal compiled successfully.
21:58:19: Parsing script lens_flare.material
21:58:19: Shader LensFlareFS_Metal compiled successfully.
21:58:19: Parsing script depth_camera.material
21:58:19: Shader DepthCameraVS_Metal compiled successfully.
21:58:19: Shader DepthCameraFS_Metal compiled successfully.
21:58:19: Shader DepthCameraFinalVS_Metal compiled successfully.
21:58:19: Shader DepthCameraFinalFS_Metal compiled successfully.
21:58:19: Parsing script wide_angle_camera.material
21:58:19: Shader WideLensMapVS_Metal compiled successfully.
21:58:19: Shader WideLensMapFS_Metal compiled successfully.
21:58:19: Parsing script point_cloud_point.material
21:58:19: Shader PointCloudVS_Metal compiled successfully.
21:58:19: Shader PointCloudFS_Metal compiled successfully.
21:58:19: Parsing script VoxelVisualizer.material
21:58:19: OGRE EXCEPTION(6:FileNotFoundException): Cannot locate resource metal_stdlib in resource group General or any other group. in ResourceGroupManager::openResource at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreResourceGroupManager.cpp (line 793)
21:58:19: Shader VCT/VoxelVisualizer_vs_Metal compiled successfully.
21:58:19: Shader VCT/VoxelVisualizer_ps_Metal compiled successfully.
21:58:19: OGRE EXCEPTION(6:FileNotFoundException): Cannot locate resource metal_stdlib in resource group General or any other group. in ResourceGroupManager::openResource at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreResourceGroupManager.cpp (line 793)
21:58:19: Shader VCT/VoxelVisualizerSeparateOpacity_vs_Metal compiled successfully.
21:58:19: OGRE EXCEPTION(6:FileNotFoundException): Cannot locate resource metal_stdlib in resource group General or any other group. in ResourceGroupManager::openResource at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreResourceGroupManager.cpp (line 793)
21:58:19: Shader VCT/VoxelVisualizerOpacityAnyColour_vs_Metal compiled successfully.
21:58:19: Parsing script TerraShadowGenerator.compositor
21:58:19: Parsing script GpuNormalMapper.compositor
21:58:19: Parsing script lens_flare.compositor
21:58:19: Parsing script wide_angle_camera.compositor
21:58:19: Parsing script GpuRays.compositor
21:58:19: Parsing script VctTexDownsample.compositor
21:58:19: Parsing script EsmGaussianBlurLogFilter.material.json
21:58:19: Parsing script Mipmaps.material.json
21:58:19: Parsing script TerraShadowGenerator.material.json
21:58:19: Parsing script ClearUav.material.json
21:58:19: Parsing script Voxelizer.material.json
21:58:19: Finished parsing scripts for resource group General
21:58:19: Creating resources for group General
21:58:19: All done
21:58:19: Parsing scripts for resource group Internal
21:58:19: Finished parsing scripts for resource group Internal
21:58:19: Creating resources for group Internal
21:58:19: All done
21:58:19: Added resource location '/opt/homebrew/Cellar/gz-rendering8/8.0.0/share/gz/gz-rendering8/media/materials/textures/' of type 'FileSystem' to resource group 'General'
21:58:19: Can't assign material [Default] because this Material does not exist. Have you forgotten to define it in a .material script?
21:58:19: Can't assign material scene::Material(65513) because this Material does not exist. Have you forgotten to define it in a .material script?
21:58:19: OGRE EXCEPTION(3:RenderingAPIException): Fixed Function pipeline is no longer allowed nor supported. The material scene::Material(65518) must use shaders in HlmsLowLevel::calculateHashFor at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreHlmsLowLevel.cpp (line 163)
21:58:19: OGRE EXCEPTION(3:RenderingAPIException): Fixed Function pipeline is no longer allowed nor supported. The material scene::Material(65518) must use shaders in HlmsLowLevel::calculateHashFor at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreHlmsLowLevel.cpp (line 163)
21:58:19: Couldn't apply datablock '[Hash 0x1dc5a795]' to this renderable. Using default one. Check previous log messages to see if there's more information.
21:58:19: OGRE EXCEPTION(3:RenderingAPIException): Fixed Function pipeline is no longer allowed nor supported. The material scene::Material(65518) must use shaders in HlmsLowLevel::calculateHashFor at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreHlmsLowLevel.cpp (line 163)
21:58:19: OGRE EXCEPTION(3:RenderingAPIException): Fixed Function pipeline is no longer allowed nor supported. The material scene::Material(65518) must use shaders in HlmsLowLevel::calculateHashFor at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreHlmsLowLevel.cpp (line 163)
21:58:19: Couldn't apply datablock '[Hash 0x1dc5a795]' to this renderable. Using default one. Check previous log messages to see if there's more information.
21:58:19: OGRE EXCEPTION(3:RenderingAPIException): Fixed Function pipeline is no longer allowed nor supported. The material Default/TransGreen must use shaders in HlmsLowLevel::calculateHashFor at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreHlmsLowLevel.cpp (line 163)
21:58:19: OGRE EXCEPTION(3:RenderingAPIException): Fixed Function pipeline is no longer allowed nor supported. The material Default/TransGreen must use shaders in HlmsLowLevel::calculateHashFor at /tmp/ogre2.3-20231207-65147-rm52u2/ogre-next-2.3.1/OgreMain/src/OgreHlmsLowLevel.cpp (line 163)
21:58:19: Couldn't apply datablock '[Hash 0x1a9fb58f]' to this renderable. Using default one. Check previous log messages to see if there's more information.
21:58:19: Shader 100000000VertexShader_vs compiled successfully.
21:58:19: Shader 100000001VertexShader_vs compiled successfully.
21:58:19: Shader 100000001PixelShader_ps compiled successfully.
21:58:19: Shader 100000002VertexShader_vs compiled successfully.
21:58:19: Shader 100000002PixelShader_ps compiled successfully.
21:58:19: WARNING: Deleting mapped buffer without having it unmapped. This is often sign of a resource leak or a bad pattern. Umapping the buffer for you...
21:58:19: WARNING: Deleting mapped buffer without having it unmapped. This is often sign of a resource leak or a bad pattern. Umapping the buffer for you...
21:58:19: WARNING: Deleting mapped buffer without having it unmapped. This is often sign of a resource leak or a bad pattern. Umapping the buffer for you...
21:58:19: WARNING: Deleting mapped buffer without having it unmapped. This is often sign of a resource leak or a bad pattern. Umapping the buffer for you...
21:58:21: Shader 100000003VertexShader_vs compiled successfully.
21:58:21: Shader 100000003PixelShader_ps compiled successfully.

Description

  • Expected behavior: The window can be resized to any width.
  • Actual behavior: Resizing the window too wide causes the GUI to become unresponsive.

Steps to reproduce

  1. Click corner of window, drag.

Output

image

Note the grey area on the right edge of the window, showing that the UI elements stopped expanding to fill the window and the image is frozen.

@rgov rgov added the bug Something isn't working label Feb 5, 2024
@rgov
Copy link
Author

rgov commented Feb 5, 2024

This is 100% reproducible by resizing but is probably not the root cause. Here's another example of not just freezing but clearly having graphics corruption issues:

image

@azeey azeey added the help wanted Extra attention is needed label Feb 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
Status: To do
Development

No branches or pull requests

2 participants